我们有一个名为“ StringExtensions”的文件,它作为“类”,可用于我假设的多个数据集/模型。
有人可以帮助您了解此ToSafeString
对字符串的作用吗?
public static string ToSafeString(this object source)
{
return source?.ToString() ?? string.Empty;
}
答案 0 :(得分:9)
它使用source?
检查对象是否不为null。如果不是null
,则调用ToString()
并返回结果。如果是null
,则返回string.Empty
。
答案 1 :(得分:3)
首先来源?。检查传入的对象是否为null,是否整个部分(source?.ToString())
将返回null,并且由于?.
运算符而导致.ToString()
未被求值。此运算符是简写形式,等效于编写:
if(source != null) {
return source.ToString();
} else {
return null;
}
接下来,空合并运算符(??
)插入,它将返回string。如果源或.ToString()
的返回为空,则空而不是空。
如果用null
调用,它将返回string.Empty
如果在具有返回.ToString()
的{{1}}方法的对象上调用,它也会返回null
如果使用具有要从string.Empty
返回的值的对象进行调用,它将返回该值。