1. ホーム
  2. c#

[解決済み] Static readonly」対「const」。

2022-03-17 10:33:12

質問

について読んだことがあります。 conststatic readonly フィールドを使用します。定数値のみを含むクラスもあります。これらは、私たちのシステムで様々なことに使用されています。ですから、私の観察が正しいかどうか疑問に思っています。

このような定数値は、常に static readonly は、公開されているものすべてに対してですか?そして const を内部値/保護値/プライベート値として使用しますか?

お勧めの方法は?もしかしたら static readonly フィールドを使用するのではなく、プロパティを使用するのでしょうか?

どのように解決するのですか?

public static readonly のフィールドは少し変わっています。 public static プロパティを使用します(ただし get の方が一般的でしょう。 private static readonly フィールド)。

const の値はコールサイトに直接書き込まれます。これは諸刃の剣です。

  • 実行時に設定から値を取得する場合は、意味がありません。
  • constの値を変更した場合、すべてのクライアントを再構築する必要があります。
  • しかし、メソッドコールを避けることができるので、より速くなる可能性があります...
  • ...これは、JITによってインライン化されている可能性があります。

もし値が 決して を変更する場合は、const で問題ありません。 Zero などが合理的な定数を作る;p それ以外。 static プロパティの方が一般的です。