Die Definition von statisch ist nicht "überall verfügbar". Es ist eine Variable, die über den Typ verteilt wird, für den sie im Rahmen einer AppDomain deklariert ist.
Access Modifiers ändern diese Definition nicht, aber offensichtlich beeinflussen den Umfang des Zugriffs.
Sie verwechseln den statischen Modifikator mit Zugriffsmodifikatoren . Eine statische Variable muss weiterhin definiert werden. In Ihrem Beispiel sind private statische Variablen nur innerhalb des Typs verfügbar, in dem sie definiert sind. Auf geschützte Typen innerhalb des Typs und auf abgeleitete Typen kann zugegriffen werden.
Beachten Sie, dass IIS (das ASP.NET-Anwendungen hostet) Worker-Prozesse recycelt, wodurch alle statischen Variablenwerte gelöscht werden, die zu der Zeit am Leben sind.
Wenn Sie eine Variable als Privat deklarieren, können Sie nicht auf sie außerhalb der aktuellen Klasse zugreifen. Wenn Sie als Geschützt deklarieren, kann nur die abgeleitete Klasse auf diese Variable zugreifen. In Ihrem Beispiel die Grundbedeutung von privat und Geschützt ändert sich nicht, also ist es egal, wie Sie es als statisch oder einfach deklarieren ...
%Vor%In obigem Code können Sie sehen, ob die statische Variable nur in der aktuellen Klasse zugänglich sein soll, dann müssen Sie sie als Privat definieren.
static
bedeutet nicht, dass es überall zugänglich ist. Sie benötigen weiterhin protected
/ private
, um Sichtbarkeit zu definieren.
privat
Auf den Typ oder das Member kann nur durch Code in derselben Klasse oder Struktur zugegriffen werden.
protected
Auf den Typ oder das Member kann nur durch Code in derselben Klasse oder Struktur oder in einer abgeleiteten Klasse zugegriffen werden.
Statischer Modifikator
Statische Methoden werden ohne Instanzreferenz aufgerufen.