您将如何在可以为 null 的 object 类型的对象上编写对 .ToString() 方法的调用。我目前正在执行以下操作,但它很长:
myobject == null ? null : myobject.ToString()
使行为更加封装的一种方法是将其放入扩展方法中:
public static class ObjectExtensions
{
public static string NullSafeToString(this object input)
{
return input == null ? null : input.ToString();
}
}
然后你可以调用NullSafeToString
任何对象:
object myobject = null;
string temp = myobject.NullSafeToString();
如果您以这种方式频繁使用该特定类型,您可以编写一个GetString(object foo)
返回字符串或 null 的方法。这将为您节省一些打字时间。C# 中是否有类似于 C++ 模板的东西?如果是,您也可以将其应用于该GetString()
方法。
你确定你想要一个空对象的空字符串吗?我认为这更有可能:
myobject == null ? string.Empty : myobject.ToString()
这并没有直接错误,但我记得一些准则,其中函数应该接受 null 和 Empty 但最好不要返回 null 字符串。