新しいプロジェクトに取り組んでいますが、正しいかどうかわからないコードがあることに気付きました。質問を説明するために使用している名前と値は偽物です。
public class MyConsts //Should it be static?
{
public const string MyConst1 = "a";
public const string MyConst2 = "b";
public const string MyConst3 = "c";
public const string MyConst4 = "d";
....
}
私のロジックでは、このクラス (consts 値のみを含む) は静的である必要があるため、初期化するオプションはなく、意味がありません。正しいでしょうか?
編集:私はコードを盲目的に書いていたので、文字列と const の順序を混同していましたが、これは私の質問の対象ではなかったので、これを修正しました。
ベストアンサー1
はい、静的であることは理にかなっています。それはあなたの意図、クライアントがその型の変数を宣言することさえできなくなります。
const
修飾子を移動する必要があります前にただし、タイプ部分:
public const string MyConst1 = "a";
...
値が変更される可能性がある場合は、public static readonly
ではなくフィールドの使用を検討してくださいconst
。そうしないと、定数を参照するすべてのコードに値が組み込まれ、値が変更された場合にクライアント コードを再構築する必要があることを意味します。
internal
(別のオプションとしては、の代わりに定数を作成することですpublic
。)