ホームページ  >  記事  >  バックエンド開発  >  C# の静的コンストラクター

C# の静的コンストラクター

王林
王林オリジナル
2024-09-03 15:12:52505ブラウズ

C# の静的コンストラクターは、クラスに実装された静的メンバーの参照の作成中に 1 回だけ呼び出されるように実装されたコンストラクターです。静的コンストラクターの主な機能は、クラスの静的メンバーを 1 回だけ実行して初期化することです。名前が示すように、静的コンストラクターはユーザーに明示的な制御を許可しませんが、クラスのインスタンスの呼び出し時に自動的に実行されます。さらに、静的コンストラクターは定義内でパラメーターやアクセス宣言を一切取らないため、直接呼び出されることはありません。静的コンストラクターは継承またはオーバーロードできず、CLR (共通言語ランタイム) のみにアクセス可能です。

C# の静的コンストラクターの機能と使用法

以下では、C# の静的コンストラクターのいくつかの機能と使用法について詳しく説明します。

静的コンストラクターの機能

次の機能は静的コンストラクターについて説明します。

  • ユーザーは実行時に静的コンストラクターを制御できません。これらはプリコンパイル前にコード内で事前定義されており、値は全期間にわたって固定されたままになります。
  • 静的コンストラクターの操作は、静的データ メンバーの初期化と、定義された順序で発生する静的アクションの実行という 2 つの段階にさらに分割できます。
  • 静的メソッドの定義にはアクセス修飾子が含まれていないため、プログラム内の他のコンポーネントから呼び出すことはできません。

静的コンストラクターの使用

静的コンストラクターは、各インスタンス中に初期化されるパラメーター エントリを書き込むために使用されるログ プログラムで主に使用されます。静的コンストラクターは、最初にロードされ、全体的に静的のままであるため、データベース接続を作成するのに理想的な位置です。 C# プログラミング言語では、静的コンストラクターは次の構文に従います。

構文:

class ABC
{
//defining the static constructor using the same name as class
static ABC()
{
//constructor specific code comes here
}
}

C# では静的コンストラクターはどのように機能しますか?

C# の静的コンストラクターの基本的な動作原理は次のとおりです。

  • クラスまたはクラスのオブジェクトが構造体として作成されると、クラスに関連付けられたデータ メンバーを作成するためにコンストラクターが呼び出されます。これらのコンストラクターはクラスと同じ名前を持ちます。
  • 静的コンストラクターの概念を理解するには、まず静的メソッドとクラスの背後にある概念を理解する必要があります。
  • 静的クラスはインスタンス化できないという事実により、通常のクラスとは区別されます。つまり、クラスの新しいインスタンスの作成に new キーワードを使用することはできません。
  • したがって、新しいインスタンスを使用してクラスにアクセスすることはできず、静的クラス名自体によって呼び出す必要があります。これらのクラスは、入力フィールドを操作するために使用され、入力パラメーターの初期値と固定値を作成するために操作されます。
  • 名前が示すように、静的コンストラクターは、クラス構造の事前レンダリング段階で必要な静的データを設定または初期化するために使用されます。静的コンストラクターは、クラスの最初のインスタンスが作成される前、または静的メンバーの参照が検索される前に呼び出されます。
  • したがって、実行時に作成されるクラスの最初のインスタンスとして静的コンストラクターを定義できます。また、これは 1 回発生するイベントであり、再度繰り返されることはありません。

静的コンストラクターの実装例

次に、C# の静的コンストラクターの例をいくつか示します。

例 #1

コード:

using System;
namespace HappyConstructor {
class Happy {
//let us declare and initialise the static data members
private static int id = 7;
public static int Id {
get {
return id;
}
}
public static void printVariable() {
Console.WriteLine("Happy.id = " + id);
}
static void Main(string[] args) {
//let us print the value of ID from the class
Happy. printVariable ();
}
}
}

出力:

C# の静的コンストラクター

説明: 上記では、静的メンバー ID が使用するために宣言され、初期値 10 に初期化されています。

例 #2

コード:

using System;
namespace Happy1Constructor {
class Happy1 {
private static int Id;
//data member (id) is set conditionally here to show actions of a Static constructor
static Happy1 () {
if (Happy1.Id < 10) {
Id = 25;
} else {
Id = 1000;
}
Console.WriteLine("Static Constructor for Class Happy Called..");
}
public static void print() {
Console.WriteLine("Happy1.Id = " + Id);
}
public static void Main(string[] args) {
// the value of Id is displayed as
Happy1.print();
}
}
}

出力:

C# の静的コンストラクター

説明: 上記の例では、コンストラクターは example1 で生成された Happy.cs ファイルに条件付きで依存しています。ここで、静的コンストラクターはそれ自体を初期化します。最初のケースでは値が 7 であるため、生成される Id フィールドは 7 です。条件演算子に従って、フィールドの値が 10 未満の場合、Happy1 コンストラクターの Id フィールドの値は 25 になります。これは典型的な例です。クラスの最初のロード時に静的コンストラクターを初期化する方法。静的コンストラクターはこの機能を利用して、プログラム参照の入力パラメーターをプリロードします。

結論

静的コンストラクターは、静的データを初期化するため、またはプログラムに対して 1 回だけ実行する必要がある特定のアクションを実行するために使用されます。このコンストラクターは、クラスのオブジェクトが開始される前、またはメンバーがランタイム環境にロードされる前に呼び出されます。

以上がC# の静的コンストラクターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。