2010-08-04 158 views

回答

4

http://blogs.msdn.com/b/dachou/archive/2008/04/17/net-and-multiple-inheritance.aspx

  • .NET被設計爲支持 多國語言,但不是所有的 語言能有效地支持 多重繼承。或者技術上 他們可能,但複雜的語言語義添加 將使那些語言 使用更加困難(和更少的相似,他們的根, 如VB,併爲落後 兼容的原因),不值得 的一些 是能夠在多個 繼承的方式
  • 這也將使 跨語言庫 互操作性(通過CLS遵從)重用 代碼 不太現實比現在的, 這是一個權衡最引人注目的 特色.NET的.NET。目前有超過70個.NET支持超過50種 語言
  • 可見因子最多 語言語義 複雜性。在C++中,我們需要爲了增加 明確的語言特性引起的 多重繼承 地址含糊不清(如 經典鑽石的問題),如 「虛擬」關鍵字來支持虛擬 繼承來幫助編譯器 決心繼承路徑(我們也有 也正確使用它)
  • 正如我們所知, 代碼被寫入20%的時間,但 讀取80%的時間。因此,在簡單方面主張 寧願不添加 語言功能爲了 保持語義簡單。在 比較C#代碼是顯著 簡單比C++代碼來讀取,並 無疑更容易編寫