定数を定義する場所についての考察。

定数を定義する場所には次の2つが考えられる(他にもあるかもしれない)。

  1. ソースコード先頭などの、特定の場所
  2. 定数を使用する場所の近く

1番の利点は、定数の定義が集まっているため、定数の把握と書き換えがしやすい、つまりメンテナンスがしやすいということだ。2番の利点は定数のスコープを狭めることで使用される場所を絞ることができるため、ソースコードが理解しやすくなることだ。2はバグが出にくくなるという効果もあると思うが、確認していない。

もし定数をソースコードの先頭で定義しておきながら、有効範囲を狭めることができたら、上記の両方のメリットを得ることができる。ソースコード上では分かれていながら、同じ名前空間に属するように書ければよい。いうなれば「名前空間の飛び地」だ。これはC#のnamespaceでは可能になっているようだ。
namespace (C#)