Was kann ich mit einer geschützten / privaten statischen Variable tun?

8

Ich sehe, ich kann schreiben:

%Vor%

in meiner C # -Klasse (in meinem Fall eine aspx.cs). Sowie:

%Vor%

Was heißt das? Statik ist überall zugänglich. Warum geschützt / privat?

    
markzzz 23.05.2012, 08:33
quelle

6 Antworten

18

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.

    
Adam Houldsworth 23.05.2012, 08:35
quelle
2

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.

    
Chets 23.05.2012 08:39
quelle
1

Eine Verwendung besteht darin, dass Sie private statische Felder erstellen und öffentliche statische Methoden / Eigenschaften verwenden können (um einige benutzerdefinierte Geschäftslogik wie Singleton usw. anzuwenden)

    
Tilak 23.05.2012 08:36
quelle
0

static bedeutet nicht, dass es überall zugänglich ist. Sie benötigen weiterhin protected / private , um Sichtbarkeit zu definieren.

    
Guido García 23.05.2012 08:35
quelle
0

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.

    
Shree Khanal 23.05.2012 08:39
quelle
-1

Verwenden Sie protected, wenn die Variable nur über bestimmte Klassen zugänglich sein soll, z. B. bei der Verwendung von Polymorphie und Vererbung. Public macht es immer sichtbar im Rahmen und privat ist ziemlich offensichtlich.

    
Mr.GT 23.05.2012 08:38
quelle

Tags und Links