C# ne peut pas être utilisé de manière isolée et doit être utilisé avec le .NET Framework.
(1) L'architecture et la méthodologie de C# reflètent la méthodologie de base de .NET.
(2) Dans la plupart des cas, les fonctionnalités spécifiques du langage C# dépendent des fonctionnalités .NET, ou s'appuient sur des classes de base .NET.
Certaines fonctionnalités prises en charge par .NET ne sont pas prises en charge par C#. Il existe d'autres fonctionnalités prises en charge par le langage C# qui ne sont pas prises en charge par .NET.
Le noyau du .NET Framework est son environnement d'exécution, appelé Common Language Runtime (CLR) ou .NET Runtime.
Le code qui s'exécute sous le contrôle du CLR est généralement appelé code managé.
Comment .NET compile le code :
Phase 1 : Compilez le code source en Microsoft Intermediate Language (IL).
*IL est similaire au bytecode en JAVA.
Phase 2 : CLR compile IL en code spécifique à la plate-forme.
Le JIT (compilateur juste à temps) compilera lorsque l'application est en cours d'exécution, donc JIL sait exactement En fonction du type de processeur sur lequel le programme s'exécute, il peut être optimisé pour ce processeur afin d'améliorer les performances.
Visual Basic 2013, Visual C 2013, Visual F#, COM et COM, bibliothèque d'exécution Windows.
Les principales caractéristiques de la langue intermédiaire :
IL n'autorise généralement aucune opération sur des types de données ambigus , bien que forcer la sécurité des types semble réduire les performances dans la plupart des cas Ci-dessous, nous obtenons plus d'avantages des services fournis par .NET qui reposent sur la sécurité des types. Ces services incluent :
Interopérabilité linguistique
Type valeur (type vaule), les variables stockent leurs données directement, le langage intermédiaire est stocké sur la pile (si déclaré comme champs dans un type référence, ils sont stockés en ligne dans la pile).
Type de référence (type de référence), les variables stockent uniquement les adresses et les instances de types de référence sont toujours stockées dans une zone mémoire appelée « tas géré ».
Saisie forcée
Le vrai sens de l'interopérabilité linguistique Utiliser une langue Les cours doivent être écrit pour communiquer directement avec des cours écrits dans une autre langue. Un tel outil est fourni (par l'IDE Visual Studio) (et non par le CLR).
Orienté objet et utilisant des interfaces
Types de valeur et Différences significatives entre les types de référence.
L'importance d'un typage de données fort dans l'interopérabilité des langages
Si une classe dérive ou contient des instances des autres classes, il a besoin de connaître tous les types de données utilisés par les autres classes, c'est pourquoi l'interopérabilité des langages est très importante.
Solutions en .NET
CTS définit des données prédéfinies qui peuvent être utilisées dans les types de langages intermédiaires , tous les langages ciblant le .NET Framework peuvent générer du code compilé qui est finalement basé sur ces types.
CTS vous permet également de définir vos propres types de code.
La structure hiérarchique de CTS reflète l'unicité du langage intermédiaire hérite de l'approche orientée objet de .
Il est acceptable d'écrire du code non-CLS, mais ce faisant, nous ne pouvons pas garantir qu'il compilera IL le code prend entièrement en charge l’interopérabilité des langages.
Collecte des déchets
Sécurité
Domaine d'application
Le garbage collector est utilisé pour la gestion de la mémoire dans .NET, en particulier. Il peut restaurer la mémoire nécessaire à applications en cours d'exécution.
Vérifiez le tas géré pour les objets non référencés et supprimez-les.
Utiliser des exceptions pour gérer les erreurs
Utiliser les attributs
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!