Ich arbeite an einem personalisierten Authentifizierungscode, der auf der Mitgliedschaft von Microsoft basiert. Während ich in die Profilfunktion schaute, habe ich mir die ProfileBase-Klasse in System.Web.dll v4.0.30319 angesehen. Es gibt einige Variablen auf Klassenebene, die als Typ deklariert sind, aber dann und dann mit einem Nullwert initialisiert werden, der in diesen Typ umgewandelt wird.
Zum Beispiel
%Vor%Ich initialisiere normalerweise keine Variablen mit einem Klassenlevel. Ich frage mich, ob das etwas ist, was ich tun soll oder zu welchem Zweck es dient.
Danke für jede Erleuchtung.
Sie sehen sich wahrscheinlich den disassemblierten -Code an. Dieses Casting wurde wahrscheinlich vom Disassembler hinzugefügt und war im Quellcode nicht vorhanden.
Sie müssen diese Art von Casting in Ihrem Code definitiv nicht tun.
Was dieser Code sagt: Initialisiere einen Speicherbereich, um einen Typ von Exception zu halten, und weise dieser Variable den Wert NULL zu. Da Exception ein Referenztyp ist, kann es null sein. Es hat keinen Sinn, NULL auf Exception zu setzen. Vielleicht generierter Code?
Die Umwandlungen werden von Ihrem Decompiler generiert - die "offizielle" Quelle hat null
, aber keine Besetzung. Ich sehe keinen Vorteil beim Hinzufügen der Besetzung.
Ich initialisiere normalerweise keine Variablen mit einem Klassenlevel. Ich frage mich, ob das etwas ist, was ich tun soll oder zu welchem Zweck es dient.
Das null
(welches ist in der Originalquelle) scheint hauptsächlich eine Stilsache zu sein. Da es normalerweise einfacher ist, ein statisches Feld in der Deklaration zu initialisieren, fügt das Hinzufügen von null
ein bisschen Klarheit hinzu, dass es absichtlich nicht initialisiert ist. Es könnte auch dazu dienen, einen FXCop oder eine ähnliche Überprüfung der Stilrichtlinien zu bestehen.
Tags und Links c#