2012-07-12 199 views
5

http://msdn.microsoft.com/en-us/library/ah19swz4(v=VS.71).aspx基類結構的構建體在C#

按照上述鏈接... ..「的Structs,但是,從基類對象......繼承」

按照下面的鏈接 http://msdn.microsoft.com/en-us/library/system.valuetype.aspx STRUCT在層次結構中的ValueType之後實現。

「struct」是從哪個類派生的?或者,編譯器將「struct」保留字用「struct」作爲值類型進行任何聲明? 缺少對整體理解的小線索。 謝謝你的幫助。 史密斯

+0

你不理解的是什麼?這是一個面試問題...?聽起來像一個..LOL – MethodMan 2012-07-12 22:44:26

+0

結構 - > ValueType - >對象 – 2012-07-12 22:44:31

回答

6

(跳過任何類亞型)的層次結構是:

  1. struct .. -> ValueType -> Object

  2. class .. -> Object

演示:

struct S {} 
class C {} 

// or see `is` as per Jeff Mercado's comment 
typeof(ValueType).IsAssignableFrom(typeof(S)); // True 
typeof(object).IsAssignableFrom(typeof(S)); // True 

typeof(ValueType).IsAssignableFrom(typeof(C)); // False 
typeof(object).IsAssignableFrom(typeof(C)); // True 
+2

它會更容易使用'is'。 ;) – 2012-07-12 22:47:35

+0

+1恩典編輯.. – Daniel 2012-07-12 22:49:22

+0

從哪裏來的int和bool,這些原始數據類型都來自哪裏?爲什麼int的語法定義不顯示繼承層次?http://msdn.microsoft.com/en-us/library/5kzh1b5w(v = VS.80).aspx – LaysomeSmith 2012-07-12 22:52:41