无论c#中的条件如何,将string设置为null

时间:2015-07-01 04:06:32

标签: c#

我在c#

中为var赋值
string fileName  = properties.AfterProperties["Name"] != null ? properties.AfterProperties["Name"].toString(): "";

现在我遇到的问题是fileName为null,无论properties.AfterProperties["Name"]

的值如何

我检查了具有fileName的properties.AfterProperties["Name"]的值,我还在立即窗口中检查了整个赋值语句,并将properties.AfterProperties["Name"]的值赋给fileName

但是当我在该分配行之后按f11时,fileName的值为空!!

3 个答案:

答案 0 :(得分: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 :(得分:1)

取决于AfterProperties的类型。

在第一个条件中,您使用的是properties.AfterProperties["Name"],但在您使用的作业中properties.AfterProperties["Name"].ToString()

可能properties.AfterProperties["Name"]不为空,但properties.AfterProperties["Name"].ToString()返回null。

答案 2 :(得分:1)

可能会这样尝试:

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