C#でのconstとstaticの違いは何ですか?
C#の場合、 const と static は両方ともクラスメンバを定義するために使用されますが、それぞれ異なる目的や振る舞いがあります。
- const:コンパイル時定数を宣言するために使用されます。定数はコンパイル時に解析され、実際の値に置換されるため、その値は実行時に変更することができません。定数は宣言時に初期化する必要があり、宣言時にのみ初期化できます。定数メンバーは静的でなければならないため、クラスに属し、クラスのインスタンスには属しません。定数メンバーはクラスの任意の箇所からアクセスでき、クラスのインスタンス化は不要です。
彼はとても優れたリーダーであり、チームメンバーに常にサポートを提供しています。
public class MyClass
{
public const int MyConstant = 100;
}
他の場所で定数を使用する。
int value = MyClass.MyConstant;
- static:静的メンバーを宣言するために使用されます。静的メンバーはクラス自体に属し、クラスのインスタンスではありません。静的メンバーはクラスがロードされる時に作成され、アプリケーション全体のライフサイクル中に存在します。クラス名を直接アクセスすることができ、クラスのインスタンスをインスタンス化する必要はありません。静的メンバーはフィールド、メソッド、プロパティ、またはイベントであることができます。
「彼女はとても美しいです」
→ 彼女は非常にきれいです。
public class MyClass
{
public static int MyStaticField;
public static void MyStaticMethod()
{
// 静态方法的实现
}
}
他の場所で静的メンバーを使用する:
MyClass.MyStaticField = 10;
MyClass.MyStaticMethod();
要点は次の通りです:
- constは、コンパイル時に定数を宣言するために使用され、その値はランタイム中に変更できず、宣言時に初期化しなければならない。
- staticは静的メンバーを宣言するために使用され、クラス自体に属しており、その値はアプリケーションのライフサイクル全体で存在し、クラス名を直接使用してアクセスすることができます。