Maison  >  Article  >  développement back-end  >  Programmation avancée C# (1)-Architecture .NET

Programmation avancée C# (1)-Architecture .NET

黄舟
黄舟original
2017-03-20 11:15:261305parcourir

1.1 C#Relation avec .NET

 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.

1.2 Common Language Runtime (CLR)

 1.2.1 Indépendance de la plateforme

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.

1.2.2 Améliorer les performances

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.

 1.2.3 Interopérabilité des langages

 Visual Basic 2013, Visual C 2013, Visual F#, COM et COM, bibliothèque d'exécution Windows.

1.3 Langue intermédiaire

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



    • Système de type commun (CTS)



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 .


    • Spécification du langage commun (CLS)


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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn