「static readonly」と「const」の違い 質問する

「static readonly」と「const」の違い 質問する

constフィールドについていろいろ読んでみましたstatic readonly。定数値のみを含むクラスがいくつかあります。それらはシステム内のさまざまな用途に使用されています。そこで、私の観察が正しいかどうか疑問に思っています。

こうした種類の定数値は、常にstatic readonly公開されているすべてのものに対して使用する必要がありますか? また、/ /constに対してのみ使用する必要がありますか?internalprotectedprivate

どのようなことをお勧めしますか?static readonlyフィールドを使用するのではなく、プロパティを使用するほうがよいのでしょうか?

ベストアンサー1

public static readonlyフィールドは少し変わっています。public staticプロパティ ( のみget) の方が一般的です (おそらくprivate static readonlyフィールドによってサポートされます)。

const値は呼び出しサイトに直接書き込まれます。これは両刃の剣です:

  • 実行時に値が取得される場合、おそらく設定から取得されるので役に立たない
  • 定数の値を変更する場合は、すべてのクライアントを再構築する必要があります。
  • ただし、メソッド呼び出しを回避するため、より高速になる可能性があります...
  • ...いずれにしても、JIT によってインライン化される可能性があります

値が決して変わらない場合は、const で問題ありません。Zeroなど、適切な const を作成します。 ;p それ以外では、staticプロパティの方が一般的です。

おすすめ記事