Nie mogę znaleźć relacji między tymi typami za pomocą reflektora .Net. Dowolny pomysł?Gdzie się dowiedzieć/sprawdzić: Int32 dziedziczy po ValueType, ValueType dziedziczy z Object?
Odpowiedz
Skoro mówisz "przy użyciu .NET reflektor":
Jeśli chciał odbicie:
Type type = typeof (int);
while(type != null)
{
Console.WriteLine(type.FullName);
type = type.BaseType;
}
który pokazuje:
System.Int32
System.ValueType
System.Object
i jeśli masz na myśli IL:
.class public sequential ansi serializable sealed beforefieldinit Int32
extends System.ValueType
oraz:
.class public abstract auto ansi serializable beforefieldinit ValueType
extends System.Object
(w reflektorze, wybierz węzeł typu, a wybrać IL jako widoku)
Jeśli masz na myśli # Widok C, a następnie:
public struct Int32 ...
wystarczy; Słowo kluczowe struct
oznacza: dziedziczy po ValueType
(chociaż nie całkiem w zwykły sposób C# class
). ValueType
pozostaje regularne klasy i posiada:
public abstract class ValueType ...
i jak zwykle, class
którego nie określa typu bazowego oznacza: dziedziczy object
.
Mam na myśli widok C#. Wszystko jest teraz jasne. Dziękuję Markowi za dawanie różnych podejść, co jest wspaniałe. – user1033098
+1 za wyjaśnienie różnych możliwych sposobów. – Adil
Ładne pytanie, ja też jestem interesujący, ale myślę, że nie można go zobaczyć w reflektorze, ponieważ tylko słowa kluczowe, takie jak scruct lub enum, definiują typ jako wartość kompilatora. –
@Denis można zobaczyć go w IL, C# i drzewa ... –
przeglądarka obiektów w VS powinna również dać te same informacje ... –