Merkwürdiger Fehler

27/03/2009 - 15:23 von Patrick Denke | Report spam
Folgender (gekürzter Code)

Dim solldicken as XElement
If anzahl > 0 Then

Dim __solldicken As XElement
__solldicken = New XElement(...
'Hier steht noch Code, der solldicken entweder einen Wert zuweist oder
eben nicht

If solldicken Is Nothing Then ' Hier ist solldicken grün unterstrichen
solldicken = __solldicken
Else
solldicken.Add(__solldicken)
End If
Else
solldicken = New XElement(...
End If

Warum kommt bei der 'Is Nothing' Abfrage die Warnung "Die
solldicken-Variable wird verwendet, bevor ihr ein Wert zugewiesen wird. Zur
Laufzeit kann eine Nullverweisausnahme auftreten."?
Genau dafür mache ich aber doch die Abfrage.
Wenn ich den Code durchlaufen lasse, funktioniert er, und zwar auch die 'Is
Nothing' Abfrage für beide Fàlle.

Gruß Patrick
 

Lesen sie die antworten

#1 Elmar Boye
27/03/2009 - 15:39 | Warnen spam
Hallo Patrick,

Patrick Denke schrieb:
Folgender (gekürzter Code)


Dim solldicken as XElement



Füge ein = Nothing an:
Dim solldicken As XElement = Nothing

If solldicken Is Nothing Then ' Hier ist solldicken grün unterstrichen



dann verschwindet die Warnung.

Warum kommt bei der 'Is Nothing' Abfrage die Warnung "Die
solldicken-Variable wird verwendet, bevor ihr ein Wert zugewiesen wird.
Zur Laufzeit kann eine Nullverweisausnahme auftreten."?



Sie soll Dich nur aufmerksam darauf machen, dass Du
der Variable noch keinen Wert zugewiesen hast, sie
aber in einem Ausdruck verwendet willst.

Wenn ich den Code durchlaufen lasse, funktioniert er,
und zwar auch die 'Is Nothing' Abfrage für beide Fàlle.



Dabei wird nur geprüft, ob Du eine Zuweisung gemacht hast,
bevor Du die Variable verwendest.
Welche wird dabei nicht geprüft (und kann in komplexeren
Fàllen auch gar nicht).

Da Du hier Nothing erwartest und darauf prüfst,
gibst Du dies direkt bei der Deklaration an.
Und der Compiler und Du sind zufrieden ;-)

Gruß Elmar

Ähnliche fragen