目次:
定義-定数とはどういう意味ですか?
C#のコンテキストでは、定数はフィールドまたはローカル変数の一種であり、その値はコンパイル時に設定され、実行時には決して変更できません。 名前、値、およびメモリの場所を持っているという点では、変数に似ています。 ただし、アプリケーションで一度だけ初期化されるという特性により、変数とは異なります。 定数は、キーワード「const」を使用して宣言されます。
コンパイル時に値が変化しないSystem.Objectを除く組み込み型の変数は、定数として宣言できます。 コンパイル中に、定数値がリテラル値の代わりにコンパイラーによって中間言語コードに代入されます。 これにより、偶発的なバグが減り、アプリケーションの整合性が向上します。 定数を使用すると、通常の変数よりもパフォーマンスが向上します。 ソフトウェアを再コンパイルする前に1か所で定数値を更新する方が簡単なため、コードの可読性が向上し、メンテナンスが向上します。
TechopediaによるConstantの説明
定数には次の特性があるか、次の規則に従う必要があります。
- 特定の型の1つ以上の定数を1つの宣言で宣言できます。
- 定数は、sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string、enum-type、または参照型など、任意の型にすることができます。
- 定数の型は、少なくとも定数自体と同じくらいアクセス可能でなければなりません。
- 依存関係が循環的な性質でない場合、定数は他の定数に依存できます。
- メソッド、プロパティ、またはイベントに定数を使用することはできません。
- 定数は、クラス、構造体、配列などのユーザー定義型にすることはできません。
- 定数を宣言している間、静的修飾子は使用できません。
- 実行時に既に割り当てられた定数変数を割り当てると、コンパイルエラーが発生します。
- 実行時に定数に関連付けられているアドレスはないため、参照で渡すことはできず、式でl値として表示することはできません。
- 定数は、public、private、protected、internal、protected internalなどのアクセス修飾子とともに使用できます。
- クラスレベルで作成された定数宣言は、アセンブリメタデータに格納されます。
定数を使用する際のベストプラクティスの一部は次のとおりです。
- 定数は宣言中に初期化する必要があります。
- 定数は、特別な値を表すため、意味のある名前で使用されます。
- 複数の非整数/積分定数を定義するには、単一の静的クラス(定数メンバー変数を含む)を使用してそれらをグループ化できます。
- 定数変数のスコープは、単一のアセンブリ、クラス、またはメソッドに制限されます。 したがって、他のアセンブリで定義された定数値を参照している間は、依存するアセンブリをコンパイルする前に修正のために再コンパイルする必要があります。
定数は読み取り専用変数とは異なります。前者は宣言時に初期化する必要があり、静的ですが、後者は宣言中またはいつでも初期化できます(コンストラクターのように、コンストラクタータイプに基づいて異なる値を持つように) )。 したがって、定数はコンパイル時定数と呼ばれ、読み取り専用変数はランタイム定数です。
この定義はC#のコンテキストで記述されました
