如何使用扩展方法覆盖Object.ToString()方法?

时间:2013-06-27 14:24:18

标签: c# .net

object.ToString()方法用于将任何对象转换为可读文本字符串。但是如果对象为null,则抛出NullReferenceError。所以我想用扩展方法覆盖这个ToString()方法,如:

public static class StringExt
{
    public string ToString(this object str)
    {           
        if (str == null)
            return System.Convert.ToString(str);

        return str.ToString();
    }
}

但似乎这永远不会覆盖ToString()类的Object

Myclass cls;
//doing something on the other hand. 

cls.ToString();

此处cls.ToString()始终使用Object.ToString()方法。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:16)

扩展方法故意不能取代实例方法。

您需要使用其他名称。