Ich habe beides in einem Code gesehen, den ich betreue, kenne aber den Unterschied nicht. Gibt es einen?
Ich möchte hinzufügen, dass myCustomer eine Instanz von Customer ist.
Ich habe beides in einem Code gesehen, den ich betreue, kenne aber den Unterschied nicht. Gibt es einen?
Ich möchte hinzufügen, dass myCustomer eine Instanz von Customer ist.
Typeof wird zur Kompilierzeit ausgeführt, GetType zur Laufzeit. Das ist es, was diese beiden Methoden so unterschiedlich macht. Deshalb können Sie, wenn Sie sich mit der Typenhierarchie befassen, den genauen Typnamen eines Typs herausfinden, indem Sie einfach GetType ausführen.
public Type WhoAreYou(Base base)
{
base.GetType();
}
Der typeof-Operator nimmt einen Typ als Parameter an. Er wird zur Kompilierzeit aufgelöst. Die Methode GetType wird für ein Objekt aufgerufen und zur Laufzeit aufgelöst. Der erste Operator wird verwendet, wenn ein bekannter Typ verwendet werden soll, der zweite dient dazu, den Typ eines Objekts zu ermitteln, wenn dieser nicht bekannt ist.
class BaseClass
{ }
class DerivedClass : BaseClass
{ }
class FinalClass
{
static void RevealType(BaseClass baseCla)
{
Console.WriteLine(typeof(BaseClass)); // compile time
Console.WriteLine(baseCla.GetType()); // run time
}
static void Main(string[] str)
{
RevealType(new BaseClass());
Console.ReadLine();
}
}
// ********* By Praveen Kumar Srivastava
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.