2016-12-28 9 views
0
if (ddl.SelectedValue != "") 

Nach Fortify, um meinen Code zu analysieren, Fortify zeigen Sie mir eine Schwachstelle, die "Null Dereference" ist.Null-Dereferenz C#

Wie kann ich dieses Problem beheben?

+0

... überprüfen, ob es .... null oder leer ist? –

+2

'ddl' könnte null sein – Rob

+0

@Rob: Steuerelemente werden normalerweise instanziiert, aber ja ... –

Antwort

3

Unter der Annahme, ddl nie Null sein kann:

if (!String.IsNullOrEmpty(ddl.SelectedValue) 
{ 

} 

Ansonsten:

if (ddl != null && !String.IsNullOrEmpty(ddl.SelectedValue) 
{ 

} 
+0

Nur aus Interesse, warum 'IsNullOrEmpty' anstatt der'! = "" '? In beiden Fällen kann "ddl" niemals null sein ("angenommen" für die erste und die explizite Überprüfung für die zweite). – paxdiablo

+0

weil selectedvalue null sein kann, und idiomatisch das ist der gemeinsame .NET-Stil statt if (ddl.SelectedValue! = Null && ddl.SelectedValue! = "") –

+0

Ah, ich sehe jetzt, nahm nicht das 'SelectedValue'-Bit berücksichtigen. Prost. – paxdiablo