Der erste Kommentar zu dieser Frage ist richtig, aber ich denke, dass es mit dem praktischen Grund weiter geklärt werden kann.
MyClass ist nicht etwas, das alleine ausgeführt werden kann. Warum? Weil der C# -Compiler selbst keinen Code hat, um "MyClass" auf etwas zu übersetzen, das für die Ausführungsumgebung von Bedeutung ist.
Die erste Anweisung funktioniert, weil der Konstruktor von XmlSerializer eine Instanz der Klasse 'Type' erwartet. Der Operator typeof gibt eine Instanz der Klasse Type zurück, die Informationen über die Klasse 'MyClass' enthält. Das Argument für den Operator typeof (?) Muss ein Typ sein, der zur Kompilierzeit bekannt ist. Die Bedeutung des Operators 'typeof' wird im # Compiler erzeugt, so dass während der Kompilierung typeof (ClassName) Code generiert, der eine Instanz der Klasse 'Type' zurückgibt, die Informationen über die angegebene Klasse (das Argument) enthält. Da Type wie jede andere Klasse ist, können Sie sogar typeof (Type) verwenden.
Da die Sprachspezifikation und anschließend der Compiler es erfordern. –
Warum verwenden Sie einen String als Nummer ohne Casting? Nahtgrund. –
Aber ich verstehe, dass MyClass ein Typ ist, liege ich falsch? – user3646717