2015-07-01 2 views
2

я присвоить значение вар в C#значение строки устанавливается в нуль независимо от состояния в C#

string fileName = properties.AfterProperties["Name"] != null ? properties.AfterProperties["Name"].toString(): ""; 

Теперь проблема я лицо имя_файла равна нулю независимо от значения properties.AfterProperties["Name"]

я проверил значение properties.AfterProperties["Name"] который имел FileName и я также проверил все операторы присваивания в ближайшем окне и присвоение значения properties.AfterProperties["Name"] к fileName

Но ш и я нажимаю f11 после этой строки назначения, значение fileName равно null!

ответ

2

Вы можете попробовать это, а

string fileName = properties.AfterProperties["Name"] != null && !String.IsNullOrEmpty(properties.AfterProperties["Name"].toString()) ? properties.AfterProperties["Name"].toString(): ""; 

Кстати небольшого намек:

properties.AfterProperties["Name"] != null // This check avoids object reference errors. 

!String.IsNullOrEmpty(properties.AfterProperties["Name"].toString()) // This check will avoid your problem - returning empty instead of null. 

Надеется, что это помогает.

1

Это зависит от типа AfterProperties.

В первом состоянии вы использовали properties.AfterProperties["Name"], но в задании вы использовали properties.AfterProperties["Name"].ToString()

Может properties.AfterProperties["Name"] не является нулевым, но properties.AfterProperties["Name"].ToString() возвращает нулевое значение.

+0

Я также попытался удалить .toString() :(но не работал –

+1

Какой тип AfterProperties? –

1

Может пытаться, как это:

string fileName = !properties.AfterProperties["Name"].Equals(null) ? properties.AfterProperties["Name"].toString(): "";

Смежные вопросы