静的クラスのコンストラクタを作成する方法に関する回避策はありますか?
クラスを初期化するときにデータをロードする必要がありますが、必要なオブジェクトは1つだけです。
C#には、このための静的コンストラクターがあります。
static class YourClass
{
static YourClass()
{
// perform initialization here
}
}
MSDNから:
静的コンストラクターは、静的データを初期化するため、または一度だけ実行する必要がある特定のアクションを実行するために使用されます。最初のインスタンスが作成される前、または静的メンバーが参照される前に自動的に呼び出されます
。
静的コンストラクターは次のようになります
static class Foo
{
static Foo()
{
// Static initialization code here
}
}
タイプが最初に使用されるときに一度だけ実行されます。すべてのクラスは、静的クラスだけでなく、静的コンストラクターを持つことができます。
はい、静的クラスは静的コンストラクターを持つことができ、このコンストラクターの使用は静的メンバーの初期化です。
static class Employee1
{
static int EmpNo;
static Employee1()
{
EmpNo = 10;
// perform initialization here
}
public static void Add()
{
}
public static void Add1()
{
}
}
また、静的コンストラクターは、クラス名Class1で静的クラスの任意の型メンバーにアクセスしたときに1回だけ呼び出されます
最初のEmployeeNameフィールドにアクセスしていて、今度はコンストラクターが呼び出されると仮定します。その後、同じタイプのメンバーにアクセスしても、呼び出されません。
Employee1.EmployeeName = "kumod";
Employee1.Add();
Employee1.Add();
静的コンストラクター
Static修飾子を使用して宣言されたコンストラクターは、静的コンストラクターです。静的コンストラクターは、静的データを初期化するため、またはクラスのライフサイクルで一度だけ実行する必要がある特定のアクションを実行するために使用されます。静的コンストラクターは、クラスで実行するコードの最初のブロックです。静的コンストラクターは、クラスのライフサイクルで1回だけ実行します。自動的に呼び出されます。静的コンストラクターはパラメーターを取りません。アクセス指定子はありません。直接呼び出されません。
C#にはこの目的の静的コンストラクターがあります。
static class YourClass
{
static YourClass()
{
//initialization
}
}
静的コンストラクターを作成できます
static class StaticParent
{
StaticParent()
{
//write your initialization code here
}
}
そして、常にパラメータが少なくなります。
static class StaticParent
{
static int i =5;
static StaticParent(int i) //Gives error
{
//write your initialization code here
}
}
そして、それはアクセス修飾子を持っていません
静的コンストラクターを使用して、静的変数を初期化できます。静的コンストラクターはクラスのエントリポイントになります
public class MyClass
{
public static MyClass()
{
//write your initialization code here
}
}