1. Qu'est-ce que .NET Framework
Ce qu'on appelle .NET FrameWork est une plate-forme et son objectif est la programmation multi-systèmes d'exploitation. Il contient de nombreux modules, tels que des composants d'application Windows, des modules de développement Web, etc. Différents systèmes d'exploitation prennent en charge certains de ces modules selon leurs propres caractéristiques. NET framework est une plateforme de programmation qui s'exécute sur une machine virtuelle. Elle est basée sur le Common Language Runtime et prend en charge le développement de plusieurs langages (C#, VB.NET, C, etc.). Peut développer des applications de bureau (WinForm, WPF, SilverLight, Office), des applications Web (Asp.NET, ASP.NET
MVC, SilverLight), le service Windows et le développement mobile embarqué. Les versions actuellement couramment utilisées sont : 2.0, 3.0, 3.5, 4.0 ;
2. Plusieurs concepts dans .NET
(1), concept CLR ?
Détails : CLR est le Common Language Runtime. (Common Language Runtime) est également un environnement d'exécution comme la machine virtuelle Java. Il est responsable de la gestion des ressources (allocation de mémoire et garbage collection), et garantit l'application et le fonctionnement. séparation nécessaire du système d’exploitation sous-jacent.
(2) Quels sont les avantages du code managé ?
Détails : //m.sbmmt.com/
(3). Quelle est la véritable signification et la manifestation de l'interopérabilité linguistique ?
Détails : Une classe écrite dans un langage doit pouvoir hériter d'une classe écrite dans un autre langage
Une classe peut contenir des instances d'une autre classe, quelle que soit la langue dans laquelle elle est écrite. Un objet doit pouvoir appeler directement des méthodes d'objets écrits dans d'autres langages
Les objets (ou références d'objet) doivent être transmis entre les méthodes
Lors de l'appel de méthodes entre différents langages, ils doivent pouvoir être utilisés dans le débogueur Débogage du appels de ces méthodes, c'est-à-dire des codes de débogage
écrits dans différentes langues
(4) Dans .NET, quel est le processus de compilation du programme ?
Détails : //m.sbmmt.com/
(5) Quelles sont les principales caractéristiques des langues intermédiaires ?
peut être compilé en temps réel par différents compilateurs et exécuté sur différentes structures, éliminant ainsi les conflits de langue. Langue intermédiaire ou langue de haut niveau.
(6) Quelle est la distinction conceptuelle entre un langage dynamique et un langage statique, un langage de définition fortement typé et un langage de définition faiblement typé ?
Langage typé dynamiquement : un langage qui vérifie les types de données lors de l'exécution. Langage typé statique : les types de données sont vérifiés lors de la compilation.
Langage de définition fortement typé : un langage qui force la définition du type de données.
Langage de définition faiblement typé : un langage dans lequel les types de données peuvent être ignorés. C'est l'opposé d'un langage de définition fortement typé, dans lequel une variable peut se voir attribuer des valeurs de différents types de données.
(7) Type compilé et type interprété (voir le blog)
Regardons d'abord le type compilé En fait, c'est la même chose que le langage assembleur : il existe aussi un programme. responsable de la traduction. Notre code source est converti pour générer le code exécutable correspondant. Pour le dire de manière plus professionnelle, ce processus est appelé compilation, et le programme responsable de la compilation est naturellement appelé compilateur. Si le code du programme que nous écrivons est contenu dans un fichier source, alors généralement un fichier exécutable sera généré directement après la compilation et nous pourrons l'exécuter directement. Mais pour un projet plus complexe, afin d'en faciliter la gestion, nous disséminons généralement le code dans différents fichiers sources et l'organisons en différents modules. A ce moment, lors de la compilation de chaque fichier, un fichier objet (Object file) sera généré à la place du fichier exécutable mentionné précédemment. Généralement, la compilation d'un fichier source correspondra à un fichier cible. Le contenu de ces fichiers cibles est essentiellement du code exécutable, mais comme il ne s'agit que de l'intégralité du projet
partie, nous ne pouvons donc pas l'exécuter directement pour l'instant. Une fois tous les fichiers sources compilés, nous pouvons enfin « empaqueter » ces fichiers cibles semi-finis dans un fichier exécutable. Ce travail est complété par un autre programme, car ce processus semble inclure le code exécutable. Les fichiers cibles sont connectés et assemblés. , donc on l'appelle aussi un lien, et le programme responsable du lien s'appelle... on l'appelle un éditeur de liens. En plus de lier les fichiers cibles, l'éditeur de liens peut également disposer de diverses ressources, telles que des fichiers d'icônes, des fichiers audio, etc., et est également responsable de la suppression des codes en double redondants entre les fichiers cibles. Une fois le lien terminé, nous pouvons généralement obtenir le fichier exécutable souhaité. Regardez à nouveau le type d'explication. « Compilation » et « interprétation » signifient tous deux « traduction », mais la différence réside dans le moment de la traduction. Par exemple : si vous envisagez de lire un livre étranger et que vous ne connaissez pas la langue étrangère, vous pouvez alors trouver un traducteur et lui donner suffisamment de temps pour traduire le livre entier du début à la fin, puis traduire le livre en langue maternelle. la version vous est donnée à lire ; ou bien, vous pouvez immédiatement demander à ce traducteur de vous aider dans la lecture, et de le laisser traduire pour vous phrase par phrase. Si vous souhaitez revenir sur un certain chapitre, il devra le traduire pour vous. encore toi.
Des deux méthodes, la première est équivalente au type compilé que nous venons de mentionner : convertir tout le code en langage machine d'un coup puis l'écrire dans un fichier exécutable et la seconde est équivalente au type interprété dont nous parlons : simplement ; avant l'exécution du programme, il n'y a qu'un programme source mais pas de programme exécutable ; et chaque fois que le programme exécute une certaine instruction du programme source, il y aura un programme shell appelé interpréteur pour convertir le code source en code binaire pour. exécution. En bref, cela signifie interprétation constante, exécution, interprétation, exécution... Par conséquent, les programmes interprétés sont indissociables des programmes d'interprétation. Par exemple, le premier BASIC est un langage interprété classique. Pour exécuter un programme BASIC, vous devez entrer dans l'environnement BASIC, puis charger le fichier source du programme et l'exécuter. Dans un programme interprété, puisque le programme apparaît toujours sous forme de code source, la transplantation ne pose pratiquement aucun problème tant qu'il existe un interprète correspondant. Bien que le code source des programmes compilés puisse également être transplanté, la condition préalable est qu'ils soient compilés séparément pour différents systèmes.
Pour des projets complexes, cela prend en effet beaucoup de temps, et il est très probable que certains détails soient encore à modifier dans le code source. De plus, les programmes interprétés sauvegardent l'étape de compilation et sont très pratiques pour la modification et le débogage. Ils peuvent être exécutés immédiatement après l'édition, vous n'avez pas à attendre patiemment la longue compilation Compilation... Liaison.... processus à chaque fois que vous apportez de petits changements au processus de liaison. Cependant, tout a des avantages et des inconvénients. Puisque les programmes interprétés mettent le processus de compilation dans le processus d'exécution, cela détermine que les programmes interprétés sont destinés à être beaucoup plus lents que les programmes compilés.
Le type compilé et le type interprété présentent tous deux des avantages et des inconvénients. Le premier a une vitesse d'exécution de programme rapide et des exigences système inférieures dans les mêmes conditions. Par conséquent, il est utilisé lors du développement de systèmes d'exploitation, d'applications à grande échelle, de systèmes de bases de données, etc., tels que C/C, Pascal/Object, Pascal (Delphi). ), VB et autres programmes de base. Tous peuvent être considérés comme des langages compilés, tandis que certains scripts Web, scripts de serveur et interfaces de développement auxiliaires, tels que les programmes qui n'ont pas d'exigences de vitesse élevée et ont certaines exigences de compatibilité entre différentes plates-formes système, sont généralement utiliser des langages interprétés, tels que Java et JavaScript, VBScript, Perl, Python, etc.
Mais comme les langages compilés et interprétés ont leurs propres avantages et inconvénients et s'opposent les uns aux autres, un certain nombre de langages émergents ont tendance à compromettre les deux. Par exemple, bien que le langage Java soit plus proche des caractéristiques. d'un langage interprété, il ne présente pas les caractéristiques d'un langage interprété avant exécution. Il a été précompilé au préalable, et le code généré est un code intermédiaire entre le code machine et le code source Java. Lors de son exécution, il est interprété et. exécuté par la JVM (la plateforme de machines virtuelles de Java, qui peut être considérée comme un interpréteur). Il conserve non seulement les caractéristiques élevées d'abstraction et de portabilité du code source, mais a également réalisé la majeure partie de la pré-compilation du code source, de sorte qu'il s'exécute beaucoup plus rapidement que les programmes « purement interprétés ». Pour des langages comme VB6 (ou versions précédentes) et C#, bien qu'en apparence ils génèrent des fichiers programme exécutables .exe, ce qui est réellement généré après la compilation de VB6 est également un code intermédiaire, mais le compilateur insère un paragraphe devant celui-ci. . Appeler automatiquement un externe.
Le code de l'interpréteur interne (cet interpréteur est indépendant du programme écrit par l'utilisateur et est stocké dans un fichier DLL du système. Tous les programmes exécutables compilés avec VB6 l'utiliseront) pour interpréter et exécuter le corps réel du programme. C# (et d'autres compilateurs de langage .net) génère du code cible .net, qui est en fait exécuté par le système d'interprétation .net (tout comme JVM, il s'agit également d'une plate-forme de machine virtuelle). Bien sûr, le code cible .net est déjà assez "de bas niveau" et est plus proche du langage machine, il est donc toujours considéré comme un langage compilé, et sa portabilité n'est pas aussi puissante que Java le prétend "compiler". une fois, exécuter partout". Et .net signifie "encoder une fois, compiler partout". En bref, avec le développement continu de la technologie de conception et du matériel, les types compilés et interprétés
Les frontières entre les approches deviennent de plus en plus floues.
Ce qui précède est la compilation des connaissances de base en C# : connaissances .NET Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !