2013-03-24 71 views
-4

我正在做一個抽象基類的任務,3個子類,其中一個也是抽象的,有2個孫子類。ToString和GetDisplayText方法有什麼區別C#

我在想GetDisplayText()方法複製了父類,然後我只需要添加子類的附加參數(簽名)。

如果我使用ToString()方法,我必須再次使用子的其他參數(簽名)對所有格式進行編碼。

是的,我明白了抽象類使用虛擬爲:

public virtual string ToString() {} 

public virtual string GetDisplayText() {} 

感謝您的幫助!

+5

你的問題是什麼? – Axarydax 2013-03-24 19:03:50

+2

你的基礎班是什麼?標準基礎對象上沒有GetDisplayText IIRC – Rup 2013-03-24 19:04:50

+0

您需要通知以覆蓋ToString()或創建新的虛擬方法爲GetDisplaText()? – Daniil 2013-03-24 19:06:49

回答

3

在不直接表示值的類型(如GUI元素,這是MSDN告訴我的方法具有GetDisplayText()方法)時,使用ToString()來提供適合於調試的對象的表示更爲常見,而不是顯示目的。 (即對象的重要屬性的文本轉儲)。所以我(瘋狂地)猜測他們將GetDisplayText()添加到應該有明文UI表示的組件(例如下拉列表中的項目),以便讓您區分問題「我在界面中展示了什麼?」和「這個東西的內部狀態是什麼?」

+0

我的用戶界面只是一個列表框。數據存儲在一個XML文件中。 – user1754874 2013-03-24 19:13:43

+1

@ user1754874那麼?這與你的問題有什麼關係? – millimoose 2013-03-24 19:45:35

+0

我在社區大學,教科書是Murach的C#2010,本書中的示例使用GetDisplayText()教師的示例使用ToString()。我不知道這兩種方法有什麼不同。 – user1754874 2013-03-24 20:04:06

相關問題