2012-07-12 13 views
5

http://msdn.microsoft.com/en-us/library/ah19swz4(v=VS.71).aspx基本クラスは、上記のリンクを1としてC#

のに構築... ..「構造体が、......ベースクラスオブジェクトから継承」

下リンク http://msdn.microsoft.com/en-us/library/system.valuetype.aspx 構造体1として階層のValueTypeの後に実装されます。

"struct"はどのクラスから派生していますか?または、コンパイラは "struct"予備語を扱い、 "struct"を値の型として使用して宣言を行いますか? 全体の理解に小さなスレッドがありません。 ありがとうございます。 (任意のクラスのサブタイプをスキップ) スミス

+0

あなたは何を理解していないのですか?これはインタビュー質問ですか...? LOL – MethodMan

+0

struct - > ValueType - > Object –

答えて

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'を使う方が簡単です。 ;) –

+0

+1優雅な編集.. – Daniel

+0

どこからintとbool、これらのすべての原始的なデータ型は由来しますか? intの構文定義が継承階層を示していないのはなぜですか?http://msdn.microsoft.com/en-us/library/5kzh1b5w(v = VS.80).aspx – LaysomeSmith

関連する問題