Ich bin verwirrt mit statischen Konstruktor in einer Instanz-Klasse.Gibt es einen Standardkonstruktor mit einem statischen Konstruktor in C#?
Da ein statischer Konstruktor standardmäßig privat ist und wir keinen Zugriffsmodifikator verwenden können, existiert der Standardkonstruktor mit dem statischen Konstruktor in einer Instanzklasse?
Wenn ja, warum? Weil wir bereits einen Konstruktor definiert haben (private static und parameter less) und nach C# concept, wenn wir einen Konstruktor angeben, dann wird der Standardkonstruktor nicht existieren. (Ich könnte hier falsch liegen)
Wenn nein, dann Warum können wir ein Objekt der Instanz-Klasse mit statischen Konstruktor erstellen.
Im Folgenden Beispiel wird erfüllt und die Ausführung erfolgreich:
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();
}
}
Der statische Konstruktor (eine Klasse kann nur einen haben) ist privat, weil er automatisch aufgerufen wird - es gibt keine Möglichkeit, Parameter anzugeben oder direkt aufzurufen. –