Können wir einen privaten Konstruktor in einer statischen Klasse haben?

7

Ich habe Zweifel, dass eine statische Klasse einen privaten Konstruktor enthalten kann.

    
Surya sasidhar 27.01.2010, 09:09
quelle

5 Antworten

7

Statische Klassen können keine Instanzkonstruktoren haben

Ссылка

Die folgende Liste enthält die Hauptmerkmale einer statischen Klasse:

  
  • Enthält nur statische Mitglieder.
  •   
  • Kann nicht instanziiert werden.
  •   
  • Ist versiegelt.
  •   
  • Kann keine Instanzkonstruktoren enthalten.
  •   
    
Ravia 27.01.2010, 09:14
quelle
6

Eine statische Klasse kann keinen any Instanzkonstruktor haben (siehe CS0710 ), ob öffentlich, privat, geschützt oder intern.

Siehe den folgenden Artikel für weitere Informationen.

Statische Klassen und statische Klassenmitglieder (C # -Programmierhandbuch)

    
Winston Smith 27.01.2010 09:11
quelle
5

Was würde dieser Konstruktor tun? Die Klasse ist statisch und wird daher niemals instanziiert. Sie können einen statischen Konstruktor in einer nicht statischen Klasse haben, um statische Felder zu initialisieren, aber bei einer statischen Klasse ist der einzige Konstruktor, der Sinn macht, der statische Konstruktor, der als CLR bezeichnet wird.

Zusatz : Jon Skeet hat einen Artikel über das Timing der Initialisierung der statischen Klasse geschrieben (normalerweise wird sie bei der ersten Verwendung initialisiert, aber manchmal möchte man sie initialisieren, wenn das Programm startet) und möglich Änderung in .net 4.

    
Michael Stum 27.01.2010 09:12
quelle
3

Ihre Zweifel sind richtig.

Eine statische Klasse kann nur einen statischen Konstruktor haben, und public / private gilt nicht, da Ihr Code diesen Konstruktor niemals aufrufen kann (die CLR tut dies).

Sie dürfen also keinen Zugriffsmodifikator (public / private / ...) auf einem statischen Konstruktor verwenden.

    
Henk Holterman 27.01.2010 09:13
quelle
2

Regel ist statische Klassen können keine Instanzkonstruktoren haben

    
RameshVel 27.01.2010 09:13
quelle

Tags und Links