我正在使用抽象基类,3个子类进行赋值,其中一个子类也是抽象的,有2个孙子类。
我认为GetDisplayText()
方法复制了父类的内容,然后我只需要添加子类的附加参数(签名)。
如果我使用ToString()
方法,我将不得不使用孩子的其他参数(签名)再次编码所有格式。
是的,我确实理解抽象类使用虚拟,如:
public virtual string ToString() {}
public virtual string GetDisplayText() {}
感谢您的帮助!
答案 0 :(得分:3)
在不直接表示值的类型中(如GUI元素,这是MSDN告诉我的GetDisplayText()
方法),使用ToString()
提供表示的更为常见对象适合调试,不显示用途。 (即对象的重要属性的文本转储。)所以我(疯狂地)猜测他们将GetDisplayText()
添加到应该具有明文UI表示的组件(例如,下拉列表中的项目)以便让您区分“我在UI中呈现什么?”的问题。和“这个对象的内部状态是什么?”