C#最好的方法是在一个对象上调用.ToString()

时间:2009-10-08 08:02:59

标签: c# rewrite

如何在类型为object的对象上编写对.ToString()方法的调用,该对象可以为null。我目前正在做以下事情,但这很长:

  myobject == null ? null : myobject.ToString()

3 个答案:

答案 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,但最好不要返回空字符串。