int a = 2;
Console.WriteLine(a.ToString()); // displays 2
// definition of ToString() here - public override string ToString();
現在,這裏是我的一些理解的:如果一個結構不能繼承另一個類或結構,爲什麼Int32有一個ToString()方法?
- 所有.NET類獲得
ToString()
方法,它從Object
類繼承。 - 結構不能從類或其他結構派生。
int
是Int32
類型的結構,它從它實現的接口獲取幾個ToString()
[With Parameters]方法。 - 還有一個
ToString()
[未經PARAMS]功能結構Int32
根據http://msdn.microsoft.com/en-us/library/system.int32.tostring.aspx,
結構的Int32覆蓋ValueType.ToString()方法
如果一個結構不能繼承一些類或結構,你能解釋一下這個ToString()
方法可用於Int32
嗎?
所有類型都以某種方式從Object派生。 int派生自派生自Object的ValueType。你的假設2是錯誤的。 http://ptgmedia.pearsoncmg.com/images/chap13_0321169514/elementLinks/13fig02.gif – 0lukasz0
@ 0lukasz0 [Not * everything * derived from object](http://blogs.msdn.com/b/ericlippert/archive/2009/) 8月6日/不被一切 - 導出 - 從 - object.aspx)。 – vcsjones
「結構Int32重寫ValueType.ToString()方法」回答你自己的問題。 –