如何用扩展方法重写Object.ToString()方法

本文关键字:方法 ToString Object 重写 何用 扩展 | 更新日期: 2023-09-27 18:20:12

对象。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();
    }
}

但这似乎从未覆盖Object类的ToString()

Myclass cls;
//doing something on the other hand. 
cls.ToString();

这里cls.ToString()总是使用Object.ToString()方法。有办法做到这一点吗?

如何用扩展方法重写Object.ToString()方法

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

您需要使用其他名称。