Die Syntax ist vielleicht falsch
%Vor%Und
%Vor%Ich habe das von einem Beispiel im Internet bekommen. Was nützt der zweite?
Wenn Sie sich den IL-Code ansehen, ist die statische Klasse abstract
und sealed
, was zwei wichtige Eigenschaften ergibt:
Eine Konsequenz des ersten Punktes ist, dass eine statische Klasse keine nicht statischen Member enthalten kann. Es kann viele Verwendungen von statischen Membern in einer nicht statischen Klasse geben. Eine häufige Verwendung ist eine Klassenfabrik:
%Vor% Hier ist der offizielle / MSDN-Hotspot, um mehr über statische Klassen
Die Hauptmerkmale einer statischen Klasse sind:
* Sie enthalten nur statische Mitglieder.
* Sie können nicht instanziiert werden.
* Sie sind versiegelt.
* Sie können keine Instanzkonstruktoren enthalten
Grundsätzlich ist eine statische Klasse identisch mit einer 'normalen' / nicht-statischen Klasse, die nur statische Methoden und einen privaten Schlüssel hat. Wenn man es als statisch markiert, hilft es, die Absicht zu klären, und hilft dem Compiler bei der Kompilierungszeit, bestimmte Dinge, z. Instanziierung nicht zulassen.
Real-world Anwendungen, die ich mir vorstellen kann: Verwenden Sie es zu Hause oder als eine Möglichkeit zu organisieren
Viele Klassen haben sowohl Instanz- als auch statische Methoden. String zum Beispiel hat:
%Vor%Und
%Vor%Wenn Sie sich fragen, warum sowohl die Klasse als auch die Methode das static-Schlüsselwort benötigen, ist es einfach designt. Ich sehe, was du fragst, wenn die Klasse statisch ist, dann sind natürlich alle Methoden auch statisch, scheint irgendwie redundant zu sein, um es dort zweimal zu platzieren. Ich weiß nicht, ob es einen guten Grund dafür gibt oder nicht.
Wenn Sie eine Klasse als statisch deklarieren:
Jede Klasse, die nicht als statisch deklariert ist, kann instanziiert, geerbt werden und nicht statische Member haben.
Eine statische Klasse ist im Grunde die gleiche wie eine nicht statische Klasse, aber es gibt einen Unterschied: Eine statische Klasse kann nicht instanziiert werden. Mit anderen Worten, Sie können das neue Schlüsselwort nicht verwenden, um eine Variable des Klassentyps zu erstellen. Da keine Instanzvariable vorhanden ist, greifen Sie auf die Mitglieder einer statischen Klasse zu, indem Sie den Klassennamen selbst verwenden.
%Vor%dabei muss die Klasse nicht instanziiert werden. Gleiches gilt für den Dateipfad. Sie belegt den eindeutigen Wert der Klasse Speicher für alle Objekte.
%Vor%dabei ist die Klasse nicht statisch, muss instanziiert werden
Wie wir wissen, sind Variablen und Funktionen zwei Typen - Instanz und Klasse.
Eine statische Klasse - hat nur Klassenvariablen keine Instanzvariablen.
Daher kann nicht instanziiert werden, nur zugänglich durch Classname.method ().
Es enthält nur private Konstruktoren, es ist kein öffentlicher Konstruktor vorhanden.
Eine statische Klasse enthält nur statische Member.