Rob*_*ean 2 c# string null coalesce
我有一个简单的类,ToString实现了我对内容感到满意.我试图通过查看各种选项是否有任何赞成/反对来决定什么是(最)正确的方法.
对于以下示例:
AstronautAstronaut:person我只是在这里选择雪球的选项:
string result = person == null ? "Unknown Astronaut" : person.ToString();string result = person.ToString() ?? "Unknown Astronaut";string result = (person ?? "Unknown Astronaut").ToString(); string result = person ?? (object)"Unknown Astronaut";我对这些的看法是
ToString感觉很难看,还担心ToString代码中的异常.string&Astronauttype不是同一类型,因此不能用于coalese.ToString应该person是null.综上所述:
我更喜欢扩展方法:
public static string SafeToString(this Object obj)
{
return obj.SafeToString(string.Empty);
}
public static string SafeToString(this Object obj, string defaultString)
{
return obj == null ? defaultString : obj.ToString();
}
Run Code Online (Sandbox Code Playgroud)
所以对你的问题:
string result = person.SafeToString("Unknown Astronaut");
Run Code Online (Sandbox Code Playgroud)