Beim Ignorieren des Themas Boxen erben alle Klassen vom Typ Objekt. Dies gilt sowohl für Referenztypen als auch für Werttypen. GetType zeigt den am weitesten abgeleiteten Typ, in diesem Fall System.Int32.
Eines der wenigen Male GetType System.Object zurückkehren wird, wenn Sie dies tun:
object var = new Object();
Console.WriteLine(var.GetType().ToString());
Boxen bezieht, wenn ein Werttyp durch eine zu Referenztyp gerichtet ist. Im Allgemeinen wird dies als eine System.Object-Referenz ausgeführt. TypeOf gibt den am meisten abgeleiteten tatsächlichen Typ zurück, nicht den Referenztyp.
class A
{
}
class B : A
{
}
class C : B
{
}
object obj1 = new ClassA();
ClassB obj2 = new ClassB();
ClassB obj3 = new ClassC();
GetType wird ähnliche Dinge für diese Typen tun.
System.Console.WriteLine(obj1.GetType().ToString());
System.Console.WriteLine(obj2.GetType().ToString());
System.Console.WriteLine(obj3.GetType().ToString());
KlasseA
ClassB
ClassC
@Also OP, Beide Console.WriteLines würde funktionieren, auch ohne die explizite ToString() - es würde implizit aufgerufen, wenn Ihr Argument Typ ist ein Objekt. – Gishu
entfernt Anrede: "Danke im Voraus.", Entfernte auch illegale Wörter aus Titel: "Frage über", nicht das nächste Mal –