是否有更简洁的写作方式
string aString = someObj == null ? null : someObj.ToString();
即。如果someObj是一个空引用然后返回一个空字符串,否则调用该对象上的ToString()并返回它?
Convert.ToString()没有帮助,因为它返回String.Empty();我将结果传递给XML序列化程序,如果对象为null而不是空的,我希望没有元素。
答案 0 :(得分:7)
您的代码非常简单。如果您希望减少代码量,因为您必须多次编写相同的片段,您可以将代码放入扩展方法中:
static class SomeObjExtensions {
public static string ToStringWithNull(this object someObj) {
return someObj == null ? null : someObj.ToString();
}
}
答案 1 :(得分:1)
您可以创建一个描述操作的扩展方法
public static class ObjectExtensions
{
public static string ToStringOrNull(this object o)
{
return o == null ? null : o.ToString();
}
}
并将其用作,
var aString = o.ToStringOrNull();
答案 2 :(得分:1)
没有这样的C#功能,但可能会,可以用?.
语法称为 monadic null checking ,如{{3}中所述文章:
string aString = someObj?.ToString();
答案 3 :(得分:-4)
if(someObject == null) {
return null;
} else {
return someObject.ToString();
}
你的内容很简洁。