如果C#中有空对象,则返回null

Alm*_*lma 0 c#

我尝试这个语句来检查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类中的一些事情来处理它.

MPe*_*ier 7

空和"空字符串"是两个不同的东西.用String.IsNullOrEmpty或支票String.IsNullOrWhiteSpace.

最后,XPath查询的结果可能为空.你为什么不把它分成几行?

附录:看起来你的XPath查询结果是空的.你正在假设它不会是空的.你有这个保证吗?当你编程时,不要相信任何人.包括你自己.

  • 如果"更少的行=清洁代码"是真的,我们都会在codegolf.SE上发布严肃的问题 (3认同)