【问题标题】:What is the difference between ToString and GetDisplayText Methods C# [closed]ToString 和 GetDisplayText 方法 C# 有什么区别 [关闭]
【发布时间】:2013-03-14 05:13:40
【问题描述】:

我正在处理一个带有抽象基类、3 个子类的作业,其中一个也是具有 2 个孙子类的抽象类。

我在想GetDisplayText() 方法复制了父类的内容,那么我只需要添加子类的附加参数(签名)。

如果我使用ToString() 方法,我将不得不使用孩子的附加参数(签名)再次对所有格式进行编码。

是的,我明白抽象类使用 virtual 如下:

public virtual string ToString() {}

public virtual string GetDisplayText() {} 

感谢您的帮助!

【问题讨论】:

  • 你的问题是什么?
  • 你的基类是什么?标准基础对象 IIRC 上没有 GetDisplayText
  • 您需要建议重写 ToString() 或创建新的虚拟方法作为 GetDisplaText()?
  • 我在问哪种方法更适合用于多重继承。抱歉,可以说我的问题变成了“大声思考”。
  • @user1754874 满足您的应用程序需要的那个。如果他们都这样做,请掷硬币。

标签: c# oop abstract-class multiple-inheritance


【解决方案1】:

在不直接表示值的类型中(如 GUI 元素,MSDN 告诉我有一个 GetDisplayText() 方法),更常见的是使用 ToString() 来提供适合调试的对象的表示, 不是显示目的。 (即对象重要属性的文本转储。)所以我(疯狂地)猜测他们将GetDisplayText()添加到应该具有纯文本UI表示的组件(例如,下拉列表中的项目)让您区分关注“我在 UI 中呈现什么?”和“这个对象的内部状态是什么?”

【讨论】:

  • 我的 UI 只是一个列表框。数据存储在 XML 文件中。
  • @user1754874 所以?这与您的问题有什么关系?
  • 我在社区大学,教科书是 Murach 的 C# 2010,书中的示例使用 GetDisplayText(),讲师的示例使用 ToString()。我不知道这两种方法有什么区别。
  • @user1754874 在这些示例中,无论出于何种目的,它们都可以互换。 (将这些内容包含在您的问题中以提供一些背景信息会有所帮助。)您问过您的老师吗?
  • 我的导师很聪明,很难回答简单的问题。因此,我似乎很难提出简单的问题。在问这里之前,我确实研究了这个问题,但无济于事。
猜你喜欢
  • 2018-07-28
  • 1970-01-01
  • 1970-01-01
  • 2021-07-18
  • 2016-12-05
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多