您好我有以下问题,是否可以制作内联if语句?
var contact= new XElement("Contact",
new XAttribute("id", id.ToString()),
new XElement("ContactData",
new XElement("Prefix", person.Prefix),
new XElement("FirstName", person.FirstName)
);
因为有时person.x可能为null并且它会给我带来错误。
提前感谢您的帮助。
答案 0 :(得分:5)
你可以试试这样的事情
var contacts = new XElement("Contact",
new XAttribute("id", id.ToString()),
new XElement("ContactData",
new XElement("Prefix", person.Prefix == null ? "" : person.Prefix),
new XElement("FirstName", person.FirstName == null ? "" : person.FirstName));
语法为(condition ? truevalue : falsevalue)
答案 1 :(得分:0)
如果person.x
为null
,您希望发生什么?
如果您希望它默认值,您可以将person.Prefix
(例如)包装在接受字符串的方法中,并返回字符串或某些可接受的默认值。
否则就是这样:
string x = null;
string y = x ?? "f";
如果y
为"f"
, x
会变为null
,否则会获得x
的值。
答案 2 :(得分:0)
如果您不希望null
停留var contact = new XElement ("Contact",
new XAttribute ("id", id.ToString ()),
new XElement ("ContactData",
new XElement("Prefix", person.Prefix ?? string.Empty),
new XElement("FirstName", person.FirstName ?? string.Empty)
)
);
,则应使用null-coalescing operator作为默认值:
{{1}}