Statische Variablen in C #
-
20-08-2019 - |
Frage
In C # ist es eine Möglichkeit, eine statische Variable in einem Verfahren wie VB.Net?
zu setzenStatic myCollection As Collection
Lösung
Warum nicht C # Unterstützung statische Methode Variablen?
Frage: In C ++ ist es möglich, ein schreiben statische Methode variabel und haben ein Variable, die nur zugegriffen werden kann, von der Innenseite des Verfahrens. C # nicht bieten diese Funktion. Warum?
A: Es gibt zwei Gründe, C # nicht haben diese Funktion.
Als erstes ist es möglich, fast zu bekommen der gleiche Effekt durch eine mit Klasse-Ebene statisch, und das Hinzufügen von Verfahren Statik würde erfordern eine erhöhte Komplexität.
Zweitens Methode Ebene Statik sind etwas berüchtigt für die Entstehung Probleme, wenn Code aufgerufen wird wiederholt oder von mehreren Threads, und da die Definitionen sind in der Methoden, es ist schwieriger, das zu finden, Definitionen.
Andere Tipps
Nein ist es nicht, aber wie ist das anders, die dann eine statische Variable auf Klassenebene?
Eigentlich, wenn Sie schauen darüber, wie geteilt umgesetzt wird, ist es ein Compiler Trick, der auf der Klasse ein statisches Feld erzeugt.
Das nächste, was zu VB.NET Static
ist ein Feld im aktuellen Typ zu erstellen. Anders als die C # hat keine Entsprechung.
Nein, das CLR nicht unterstützt dies und VB.NET Resorts Tricks Compiler es zu ermöglichen. Ugh.
Ich bin mir ziemlich sicher, dass die C # entspricht const
: also:
public const Collection myCollection = new Collection();
Ich bin nicht allzu vertraut mit VB.NET, so konnte ich außerhalb der Basis, aber das können Sie eine Variable, die nicht geändert werden kann.