インスタンスクラスの静的コンストラクタと混同しています。C#で静的コンストラクタを使用してデフォルトのコンストラクタが存在しますか?
静的コンストラクタはデフォルトで非公開で、アクセス修飾子は使用できません。したがって、インスタンスクラスに静的コンストラクタを持つデフォルトコンストラクタが存在しますか?
「はい」の場合、なぜですか?コンストラクタ(private staticとlessパラメータ)を既に定義しており、C#コンセプトに従って、コンストラクタを提供すると、デフォルトコンストラクタは存在しません。 (ここで間違っている可能性があります)
いいえ、それでは、静的コンストラクターを使用してインスタンスクラスのオブジェクトを作成できるのはなぜですか。例以下は
を遵守し、正常に実行されます。
public class OOPS
{
static int i = 0;
static OOPS(){
Console.WriteLine("Static Constructor ");
}
//OOPS() {
// Console.WriteLine("Instance Constructor");
//}
public static void ShowStaticMethod() {
Console.WriteLine("Static Method ");
}
public void ShowInstanceMethod()
{
Console.WriteLine("instance Method");
}
}
class Client
{
public void ClientMethod() {
OOPS o = new OOPS();
o.ShowInstanceMethod();
OOPS.ShowStaticMethod();
Console.WriteLine("Client completed");
Console.ReadLine();
}
}
静的なコンストラクタ(クラスは1つしか持てません)は、自動的に呼び出されるためプライベートです。パラメータを指定したり直接呼び出す方法はありません。 –