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.
Das Ergebnis ist in Ihrem Fall genau dasselbe. Es wird Ihr benutzerdefinierter Typ sein, der sich ableitet von System.Type
. Der einzige wirkliche Unterschied besteht darin, dass Sie, wenn Sie den Typ von einer Instanz Ihrer Klasse erhalten möchten, die Funktion GetType
. Wenn Sie keine Instanz haben, aber den Namen des Typs kennen (und nur den tatsächlichen System.Type
zu überprüfen oder zu vergleichen), würden Sie verwenden typeof
.
EDIT: Ich möchte hinzufügen, dass der Aufruf von GetType
wird zur Laufzeit aufgelöst, während typeof
wird zur Kompilierzeit aufgelöst.
Typeof(foo) wird während der Kompilierzeit in eine Konstante umgewandelt. foo.GetType() erfolgt zur Laufzeit.
typeof(foo) konvertiert auch direkt in eine Konstante seines Typs (d.h. foo), so dass dieser Vorgang fehlschlagen würde:
public class foo
{
}
public class bar : foo
{
}
bar myBar = new bar();
// Would fail, even though bar is a child of foo.
if (myBar.getType == typeof(foo))
// However this Would work
if (myBar is foo)
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.