.NET中確實有全部類型繼承自System.Object。System.Object如何使用子類作爲其返回類型?
我發現矛盾,是對System.Object的幾個方法 - )即
- 公共虛擬串的ToString(;
- public virtual bool Equals(object objA,object objB);
System.String是從System.Object繼承:
[Serializable]
public class String : Object { /*...*/ }
System.Boolean從System.Object中繼承:
[Serializable]
public struct Boolean : Object { /*....*/ }
是什麼,允許在幕後的事情System.Object類允許子類用作其方法的返回類型?這個代碼是如何編譯的,因爲似乎有一個循環引用。字符串< - >對象< - >布爾值。我確定我會看到關於「它是如何實現的」語句,但是我可以理解這些返回類型是否是「System.Object」本身,然後是子類使用實現的string,bool和其他System.ValueTypes聲明一個新的基類。
我希望這是有道理的。
由於提前,
多米尼克
你可能想看看http://stackoverflow.com/questions/1316518/how-did-microsoft-create-assemblies-that-have-circular-references在那裏表明,儘管圓形依賴關係被IDE阻止,它們可以使用命令行編譯器(csc.exe)完成。 – 2009-08-22 18:09:07
我的意思是程序集之間的循環依賴關係... – 2009-08-22 18:11:20