静的コンストラクターは、静的データを初期化するか、特定の操作を実行するために使用されます。 翻訳する必要がある内容は次のとおりです。 最初の呼び出しの前に自動的に実行される操作 インスタンスが作成されたとき、または静的メンバーが参照されたとき。
静的コンストラクターは、アンマネージ コードのラッパー クラスを作成する場合に便利です。 コンストラクターが LoadLibrary メソッドを呼び出せるとき。静的コンストラクターについても同様です 実行時にチェックできない型パラメータを強制するのに便利な場所 制約はコンパイル時にチェックされます。
静的コンストラクターには次のプロパティがあります -
静的コンストラクターはアクセス修飾子やパラメーターを受け入れません。
using System; namespace DemoApplication{ public class Program{ static void Main(string[] args){ Car user = new Car(); Car user1 = new Car(); Console.ReadLine(); } } public class Car{ static Car(){ Console.WriteLine("Static constructor called"); } public Car(){ Console.WriteLine("Default constructor called"); } } }出力
Static constructor called Default constructor called Default constructor called
using System; using System.Threading; namespace DemoApplication{ public class Car{ protected static readonly DateTime globalStartTime; protected int RouteNumber { get; set; } static Car(){ globalStartTime = DateTime.Now; Console.WriteLine($"Static constructor called. Global start time: {globalStartTime.ToLongTimeString()}"); } public Car(int routeNum){ RouteNumber = routeNum; Console.WriteLine($"Car {RouteNumber} is created."); } public void Drive(){ TimeSpan elapsedTime = DateTime.Now - globalStartTime; Console.WriteLine($"Car {this.RouteNumber} is starting its route {elapsedTime.Milliseconds} minutes after global start time {globalStartTime.ToShortTimeString()}."); } } class TestCar{ static void Main(){ Car car1 = new Car(1); Car car2 = new Car(2); car1.Drive(); Thread.Sleep(25); car2.Drive(); Console.ReadLine(); } } }出力
Static constructor called. Global start time: 7:09:06 AM Car 1 is created. Car 2 is created. Car 1 is starting its route25 minutes after global start time7:09 AM. Car 2 is starting its route50 minutes after global start time7:09 AM.
以上がC# での静的コンストラクターの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。