Frage

Angesichts des C # -Codes unten erwartete ich, dass das private Datenmitglied _userdataTatorage sofort initialisiert werden soll.Stattdessen finde ich, dass es überhaupt nicht initialisiert wird ist.Ich lege einen Haltepunkt auf die Initialisierungsanweisung und es wird nie getroffen.Dies bedeutet, dass das db statische Eigenschaft immer NULL zurückgibt.Arbeiten statische Klassen anders als nicht statische Klassen?

generasacodicetagpre.

Ich werde den Code ändern, um nach Null zu suchen und _userdatustorage selbst vorerst zu initialisieren.Aber ich möchte hier sicher sein, meine Erwartungen hier.

War es hilfreich?

Lösung

Versuchen Sie versuchen, einen statischen Konstruktor hinzuzufügen, und initialisieren Sie die Variable innen.

generasacodicetagpre.

" Wenn ein statischer Konstruktor in der Klasse vorhanden ist, erfolgt die Ausführung der statischen Feldinitialisierung unmittelbar vor der Ausführung dieses statischen konstruktors " Quelle

Andere Tipps

Da es sich um einen statischen Initialisierer handelt, wird er " mit einer implementierungsabhängigen Zeit vor der ersten Verwendung eines statischen Felds dieser Klasse " initialisiert. Quelle

Ihr Haltepunkt kann also nicht getroffen werden , es sei denn, Sie verwenden, wenn Sie dieses Feld (oder ein anderes statisches Feld in dieser Klasse) verwenden.


Für Vollständigkeit kann ich hinzufügen, wenn ein statischer Konstruktor vorhanden ist, die statischen Feldinstitiergeräte vor dem statischen Konstruktor ausgeführt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top