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

После использования Fortify для анализа моего кода Fortify покажет мне уязвимость, которая является «Null Dereference».Null Dereference C#

Как я могу решить эту проблему?

+0

... проверить, если это пустой или пустой ....? –

+2

'ddl' может быть пустым – Rob

+0

@Rob: элементы управления обычно создаются экземпляром, но да ... –

ответ

3

Предполагая ddl никогда не может быть пустым:

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

} 

В противном случае:

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

} 
+0

Просто из интереса, почему 'IsNullOrEmpty', а не'! = "" 'Check? В обоих случаях 'ddl' никогда не может быть нулевым (« предполагать »для первого и явную проверку для второго). – paxdiablo

+0

, потому что selectedvalue может быть нулевым, и идиоматически это обычный стиль .Net, а не if (ddl.SelectedValue! = Null && ddl.SelectedValue! = "") –

+0

А теперь я не вижу бит 'SelectedValue' в учетную запись. Приветствия. – paxdiablo