Comment fonctionne ‘typeof’?

Je suis curieux de savoir à quoi ressemblerait le “corps de la méthode” pour typeof en C # (je suis quasiment sûr que je ne peux pas l’obtenir dans réflecteur car c’est un mot-clé et non une méthode).

Je suppose que cela équivaut à GetType ( conversion magique du symbole en chaîne ).

En regardant GetType (chaîne) dans Reflector, il appelle une méthode “PrivateGetType”, qui appelle “RuntimeTypeHandle.GetTypeByName”, et RuntimeTypeHandle semble avoir une grande partie de la logique derrière les types qu’elle contient, mais la substance GetTypeByName n’apparaît pas dans Reflector. .

Si vous faites quelque chose comme:

Type t = typeof(ssortingng); 

Ensuite, le compilateur comstack le typeof(ssortingng) en une instruction ldtoken MSIL, puis appelle Type.GetTypeFromHandle pour obtenir une instance de la classe Type .

Type.GetTypeFromHandle est implémenté par le moteur d’exécution (c’est pourquoi il est marqué avec l’atsortingbut “MethodImplOptions.InternalCall”). Vous pouvez regarder le code source en mono pour savoir comment il est réellement implémenté, mais vous devez comprendre tout le système de métadonnées pour comprendre comment Type et ses amis fonctionnent en interne …