我在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
的值为空!!
答案 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(): "";