const
フィールドについていろいろ読んでみましたstatic readonly
。定数値のみを含むクラスがいくつかあります。それらはシステム内のさまざまな用途に使用されています。そこで、私の観察が正しいかどうか疑問に思っています。
こうした種類の定数値は、常にstatic readonly
公開されているすべてのものに対して使用する必要がありますか? また、/ /値const
に対してのみ使用する必要がありますか?internal
protected
private
どのようなことをお勧めしますか?static readonly
フィールドを使用するのではなく、プロパティを使用するほうがよいのでしょうか?
ベストアンサー1
public static readonly
フィールドは少し変わっています。public static
プロパティ ( のみget
) の方が一般的です (おそらくprivate static readonly
フィールドによってサポートされます)。
const
値は呼び出しサイトに直接書き込まれます。これは両刃の剣です:
- 実行時に値が取得される場合、おそらく設定から取得されるので役に立たない
- 定数の値を変更する場合は、すべてのクライアントを再構築する必要があります。
- ただし、メソッド呼び出しを回避するため、より高速になる可能性があります...
- ...いずれにしても、JIT によってインライン化される可能性があります
値が決して変わらない場合は、const で問題ありません。Zero
など、適切な const を作成します。 ;p それ以外では、static
プロパティの方が一般的です。