我尝试这个语句来检查SSN是否为空,返回SSNstr中的值,否则返回null.但是Object reference not set to an instance of an object.当SSN为空时,这会给我带来错误.
Model.DocumentData dt = new Model.DocumentData();
dt.SSNstr = (dt.SSNstr == null ? null :(string)individual.XPathSelectElement("Individual/SSN")).Insert(5,"-").Insert(3,"-");
Run Code Online (Sandbox Code Playgroud)
这是dt类:
[DataMember]
public string SSNstr = string.Empty;
Run Code Online (Sandbox Code Playgroud)
请注意这里我知道如何检查空值但我喜欢在同一行代码中执行.由于我有这么多字段,我需要检查我更喜欢检查代码的1行或更改dt类中的一些事情来处理它.
空和"空字符串"是两个不同的东西.用String.IsNullOrEmpty或支票String.IsNullOrWhiteSpace.
最后,XPath查询的结果可能为空.你为什么不把它分成几行?
附录:看起来你的XPath查询结果是空的.你正在假设它不会是空的.你有这个保证吗?当你编程时,不要相信任何人.包括你自己.
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |