C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 大量の定数の扱い


(過去ログ 116 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■68184 / inTopicNo.1)  大量の定数の扱い
  
□投稿者/ wankuma_fun (1回)-(2013/09/29(Sun) 07:47:04)

分類:[C#] 

現在ファイルの書き込みをしているのですが、
固定値が多く、ソースにリテラル文字が散らばっております。
やはり大量にリテラルが発生しても定数として変数に入れたほうが見やすいのでしょうか。
それでは失礼します。
引用返信 編集キー/
■68185 / inTopicNo.2)  Re[1]: 大量の定数の扱い
□投稿者/ επιστημη (84回)-(2013/09/29(Sun) 08:18:59)
επιστημη さんの Web サイト
> やはり大量にリテラルが発生しても定数として変数に入れたほうが見やすいのでしょうか。

見やすいか否かは人次第かと。
未来永劫その値が書き換えられることは思えないのであれば、リテラル直書きでもかまわんこともあります。

ただ、たとえばリテラル値 2 が "最小の偶数"の意味で用いられているなら MINIMUM_EVEN, "最初の素数"なら FIRST_PRIMEとしたほうがいいかもです。
コードを読んだひとが コード中に現れる 2 の意味を文脈から理解できないようであれば。

引用返信 編集キー/
■68190 / inTopicNo.3)  Re[2]: 大量の定数の扱い
□投稿者/ 774RR (114回)-(2013/09/29(Sun) 19:15:24)
悪いのは「謎の定数」であって、かつ複数箇所を変更しなければならないもの、だけだと俺は思う。
一箇所にしか現れないとか、根拠があってリテラルであるものは書き換えないほうがいい。

(x+y)/2 の 2 を TWO に書き換えるべきだとは俺は思わない(多くの人も思わないだろう)
{ -b + sqrt(b*b-4*a*c) } / (2*a) の 2 や 4 は書き換えないほうがいいだろう。

引用返信 編集キー/
■68193 / inTopicNo.4)  Re[1]: 大量の定数の扱い
□投稿者/ shu (394回)-(2013/09/30(Mon) 09:40:36)
No68184 (wankuma_fun さん) に返信
> やはり大量にリテラルが発生しても定数として変数に入れたほうが見やすいのでしょうか。
表現が微妙なので一応書いときます。
変数ではなくconst宣言された方がよいと思います。

マジックナンバーとなるものはconstで定義するのを基本として
No68190 774RRさんが言うような不変的な数式などのケースではコメントを記述しリテラル値の
意味が分かるようにしておくと良いのではないでしょうか?


引用返信 編集キー/
■68254 / inTopicNo.5)  Re[2]: 大量の定数の扱い
□投稿者/ morimori (28回)-(2013/10/04(Fri) 08:12:45)
皆様回答ありがとうございます。

>マジックナンバーとなるものはconstで定義するのを基本として
>No68190 774RRさんが言うような不変的な数式などのケースではコメントを記述しリテラル値の
>意味が分かるようにしておくと良いのではないでしょうか?

そうですね。そのように進めさせていただきます。
ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -