如何在类型为object的对象上编写对.ToString()方法的调用,该对象可以为null。我目前正在做以下事情,但这很长:
myobject == null ? null : myobject.ToString()
答案 0 :(得分:11)
使行为更加封装的一种方法是将其放在扩展方法中:
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();
答案 1 :(得分:2)
如果您经常以这种方式使用该特定类型,则可以编写一个方法GetString(object foo)
,它将返回一个字符串或null。这样可以省去一些打字。
在C#中是否有类似于C ++模板的东西?如果是,您也可以将其应用于GetString()
方法。
答案 2 :(得分:2)
您确定要为空对象提供空字符串吗?我认为这更有可能:
myobject == null ? string.Empty : myobject.ToString()
这不是直接错误,但我记得一些指南,其中函数应该接受null和Empty,但最好不要返回空字符串。