2012-07-12 11 views
5

http://msdn.microsoft.com/en-us/library/ah19swz4(v=VS.71).aspxklasa bazowa skonstruować struktury w C#

Zgodnie z powyższym linkiem ... .. „elemencie, jednak dziedziczą z klasy bazowej Object ......”

Jak na poniższy link http://msdn.microsoft.com/en-us/library/system.valuetype.aspx Struct jest implementowany po ValueType w hierarchii.

"struct" pochodzi z jakiej klasy? Lub kompilator traktuje słowo "struct" jako rezerwę, aby dokonać dowolnej deklaracji za pomocą "struct" jako typu wartości? Brakuje małego wątku w ogólnym zrozumieniu. Dziękuję za pomoc. Smith

+0

Czego nie rozumiesz? czy to jest pytanie z Wywiadu ...? brzmi jak jeden ..LOL – MethodMan

+0

struct -> ValueType -> Obiekt –

Odpowiedz

6

hierarchie (omijając żadnych podtypy klasy), są:

  1. struct .. -> ValueType -> Object

  2. class .. -> Object

Demo:

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

Byłoby łatwiej użyć 'jest'. ;) –

+0

+1 za łaskawą edycję .. – Daniel

+0

skąd pochodzą int i bool, wszystkie te pierwotne typy danych? Dlaczego definicja składni int nie pokazuje hierarchii dziedziczenia? Http: //msdn.microsoft.com/en-us/library/5kzh1b5w (v = VS.80) .aspx – LaysomeSmith