


CLR (common Language Runtime) et IL (code intermédiaire) en C#
CLR dans la plateforme .net
Tout d'abord, il convient de noter que la plateforme .NET n'est pas la même chose que C#. C'est la plateforme sur laquelle s'exécutent des programmes tels que C# et VB.net. .
CLR est le Common Language Runtime et une partie importante du .NET Framework. Il fournit des services tels que la gestion de la mémoire, la gestion des threads et la gestion des exceptions, et est également responsable de la mise en œuvre de contrôles stricts de sécurité de type sur le code pour garantir l'exactitude du code.
En fait, de nombreuses fonctionnalités en C# telles que la sécurité des types (Type Checker), le garbage collection (Garbage Collector), la gestion des exceptions (Exception Manager), la rétrocompatibilité (COM Marshaler), etc. sont fournies par le CLR. .
Qu'est-ce qu'IL
.NET Framework est une plate-forme d'exécution virtuelle construite sur la plate-forme Windows. Vous pouvez imaginer remplacer la couche inférieure de Windows par d'autres systèmes d'exploitation, tels que Linux, de la même manière. possible d'utiliser un langage .NET conforme à CLS (Common Language Spécification, Common Language Spécification). C'est en fait la fonction que Mono envisage de réaliser. Par conséquent, en théorie, C# est un langage multiplateforme.
Une autre chose qui rend C# plus proche de Java est qu'il s'agit également d'un langage (dans un sens particulier, comme Java, le code du programme écrit en C# est d'abord compilé en un caractère spécial par la section C#). le code, (Microsoft Intermediate Language, MSIL, Microsoft) langage intermédiaire, est compilé en code machine par un compilateur spécifique (compilateur JIT, Just In tIME, JITer) au moment de l'exécution pour exécution par le système d'exploitation.
IL est un langage intermédiaire. Les compilateurs de divers langages de haut niveau (tels que C#, VB, F#) sur la plateforme .NET convertiront leurs expressions de texte respectives en IL. Diverses formes de texte ont finalement été unifiées dans l'expression d'IL
Après que CLR ait chargé IL, lorsque chaque méthode est exécutée pour la première fois, JIT sera utilisé pour compiler le code IL en code machine et en assemblage. avoir une correspondance biunivoque. Cela peut être compris comme ceci : l'assembly est la représentation textuelle du code machine et fournit des « mnémoniques » dont les gens peuvent se souvenir facilement.
Pour le même IL, JIT générera différents codes machine pour différentes architectures CPU (telles que x86/IA64, etc.).
Code C# et son code intermédiaire IL correspondant
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
Grâce au code ci-dessus, on peut résumer : .maxstack : variables dans le code dont il a besoin pour occuper plusieurs positions dans la pile d'appels (Call Stack) ; .locals int(...) : Définir l'initialisation de la variable et la mettre dans la pile d'appels (Call Stack) ; Poussez la chaîne dans la pile d'évaluation ;
ldc.i4.1 : poussez la valeur 2 dans la pile d'évaluation sous la forme d'un entier de 4 octets ; insérez la valeur dans la pile d'évaluation (Evaluation) et attribuez-la à la pile d'appels (Call Stack) ; ldloc : retirez (copiez) la valeur à la position spécifiée dans la pile d'appels (Call Stack) et poussez-la dans la pile d'évaluation ; (Pile d'évaluation) ; call : appelle la méthode spécifiée. Cette instruction est généralement utilisée pour appeler des méthodes statiques ; callvir est généralement utilisé pour appeler des méthodes d'instance ;
Regardons un autre exemple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
Le code IL de la méthode principale correspondante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
Ce qui précède est le CLR (langage commun) en C# Runtime) et IL (code intermédiaire), veuillez faire attention au site Web PHP chinois (www.php.cn) pour plus de contenu connexe !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide d'Active Directory avec C#. Nous discutons ici de l'introduction et du fonctionnement d'Active Directory en C# ainsi que de la syntaxe et de l'exemple.

Guide du générateur de nombres aléatoires en C#. Nous discutons ici du fonctionnement du générateur de nombres aléatoires, du concept de nombres pseudo-aléatoires et sécurisés.

Guide des modificateurs d'accès en C#. Nous avons discuté de l'introduction Types de modificateurs d'accès en C# ainsi que d'exemples et de résultats.

Guide de la vue Grille de données C#. Nous discutons ici des exemples de la façon dont une vue de grille de données peut être chargée et exportée à partir de la base de données SQL ou d'un fichier Excel.

Guide de sérialisation C#. Nous discutons ici de l'introduction, des étapes de l'objet de sérialisation C#, du fonctionnement et de l'exemple respectivement.

Guide des modèles en C#. Nous discutons ici de l'introduction et des 3 principaux types de modèles en C# ainsi que de ses exemples et de l'implémentation du code.

Guide des nombres premiers en C#. Nous discutons ici de l'introduction et des exemples de nombres premiers en c# ainsi que de l'implémentation du code.

Guide des services Web en C#. Nous discutons ici d'une introduction aux services Web en C# avec l'utilisation de la technologie, ses limitations et des exemples.
