Maison  >  Article  >  développement back-end  >  Versions C#

Versions C#

PHPz
PHPzoriginal
2024-09-03 15:02:35471parcourir

C# est un langage de programmation de haut niveau créé par Microsoft qui offre polyvalence et puissance aux développeurs. Il a connu plusieurs itérations, chacune apportant des améliorations et de nouvelles fonctionnalités pour le rendre plus efficace et plus convivial. Ces changements ont aidé les développeurs à créer facilement des applications logicielles modernes. Depuis ses débuts avec C# 1.0 jusqu'à la dernière version, C# 10.0, cet article vous guidera à travers les avancées les plus significatives et leur impact sur le monde du développement logiciel. Comprendre ces changements est essentiel pour les développeurs qui souhaitent profiter de tout le potentiel de C#.

Versions de C#

Ici, nous discuterons des versions de C#. Vous trouverez ci-dessous les versions de C# :

1. C# Version 1.0

Cette version est comme Java. Son manque de capacités asynchrones et de certaines fonctionnalités. Les principales fonctionnalités de cette version sont ci-dessous

Classes : C'est un plan qui est utilisé pour créer les objets.

  • Il ne peut y avoir qu'une seule classe publique par fichier.
  • Les commentaires peuvent apparaître au début ou à la fin de n'importe quelle ligne.
  • S'il y a une classe publique dans un fichier, le nom du fichier doit correspondre au nom de la classe publique.
  • Si elle existe, la déclaration du package doit être la première ligne.
  • Les instructions d'importation doivent être placées entre l'instruction package (s'il y en a une) et la déclaration de classe.
  • S'il n'y a pas d'instructions package ou import, la déclaration de classe doit être la première ligne du fichier de code source.
  • Les instructions d'importation et de package s'appliquent à toutes les classes d'un fichier de code source.
  • Un fichier sans classes publiques peut avoir un nom qui ne doit nécessairement correspondre à aucun des noms de classe du fichier.

Code :

// declaring public class
public class Test
{
// variable
public int a, b;
// member function
public void display()
{
WriteLine("Class in C#");
}
}

Structure : Dans Struct, nous pouvons stocker différents types de données sous une seule variable. Nous pouvons utiliser le type de données défini par l'utilisateur dans les structures. Nous devons utiliser le mot-clé struct pour définir cela.

Code :

using System;
namespace ConsoleApplication {
// structure
public struct Emp
{
// different data types
public string Name;
public int Age;
public int Empno;
}
class Geeks {
// Main Method
static void Main(string[] args)
{
// Declare P1 of type Person
Person P1;
// P1's data
P1.Name = "Ram";
P1.Age = 21;
P1.Empno = 80;
// Displaying the values
Console.WriteLine("Data Stored in P1 is " +
P1.Name + ", age is " +
P1.Age + " and empno is " +
P1.empno);
}
}
}

Interfaces :

  • L'interface sert de contrat pour la classe.
  • Toutes les méthodes d'interface sont implicitement publiques et abstraites.
  • Toutes les variables d'interface sont publiques statiques finales.
  • Méthodes statiques non autorisées.
  • L'interface peut étendre plusieurs interfaces.
  • La classe peut implémenter plusieurs interfaces.
  • L'interface implémentant la classe doit définir toutes les méthodes de l'interface ou elle doit être déclarée abstraite.

Litéraux : C'est une valeur utilisée par la variable. C'est comme une valeur constante.

Code :

class Test {
// Main method
public static void Main(String []args)
{
int a = 102;
// octal-form literal
int b = 0145
;
// Hexa-decimal form literal
int c = 0xFace;
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
}
}

Délégués : C'est comme un pointeur. C'est une variable de type référence qui contient les autres méthodes.

2. C# Version 1.2

Dans cette version, quelques améliorations ont été apportées. Ils ont ajouté pour chaque boucle dans cette version qui exécutera chaque bloc jusqu'à ce qu'une expression devienne fausse.

3. C# Version 2.0

Dans cette version, ils ont ajouté des fonctionnalités avancées ci-dessous.

Génériques : La programmation générique est un style de programmation informatique dans lequel les algorithmes sont écrits en termes de types à spécifier ultérieurement qui sont ensuite instanciés si nécessaire pour des types spécifiques fournis en tant que paramètres.

Méthode anonyme : Il s'agit d'une méthode vierge. Ceci est défini à l'aide du mot-clé délégué.

  • Type Nullable : Avant cette version, nous ne pouvons pas définir une variable comme nulle. Cette version surmonte donc ce problème.
  • Itérateurs
  • Covariance et contravariance
  • Accessibilité séparée getter/setter : nous pouvons utiliser un getter setter pour obtenir et définir les valeurs.

4. C# Version 3.0

Cette version a fait de C# un formidable langage de programmation.

  • Initialiseurs d'objets et de collections : Avec l'aide de cela, nous pouvons accéder à n'importe quel champ sans invoquer le constructeur.
  • Méthode Partielle : Comme son nom l'indique, sa signature et ses implémentations sont définies séparément.
  • Var : Nous pouvons définir n'importe quelle variable en utilisant le mot-clé var.

5. C# Version 4.0

La version a introduit quelques fonctionnalités intéressantes :

Liaison dynamique : C'est comme une substitution de méthode. Ici, le compilateur ne décide pas de la méthode à appeler.

Code :

public class ClassA
{
public static class superclass
{
void print()
{
System.out.println("superclass.");
}
}
public static class subclass extends superclass
{
@Override
void print()
{
System.out.println("subclass.");
}
}
public static void main(String[] args)
{
superclass X = new superclass();
superclass Y= new subclass();
X.print();
Y.print();
}
}
  • Arguments nommés/facultatifs
  • Covariant et contravariant génériques
  • Types d'interopérabilité intégrés

Ici, la fonctionnalité majeure était la dynamique des mots clés. Il remplace le compilateur au moment de l'exécution.

6. C# Version 5.0

Dans cette version, ils ont ajouté deux nouveaux modèles pour la programmation asynchrone.

asynchrone et attendre

Grâce à ceux-ci, nous récupérons facilement des informations sur le contexte. Ceci est très utile pour les opérations de longue durée. Dans cet async, le mot-clé wait est activé. Avec l’aide du mot-clé wait, tout devient asynchrone. Il s'exécute donc de manière synchrone jusqu'à ce que le mot-clé attende.

7. C# Version 6.0

Cette version incluait les fonctionnalités ci-dessous

  • Importations statiques
  • Membres au corps d'expression
  • Propagateur nul
  • Attendez dans les blocs catch/finally
  • Valeurs par défaut pour les propriétés getter uniquement
  • Filtres d'exceptions
  • Initialiseurs de propriétés automatiques
  • Interpolation de chaîne
  • nom de l'opérateur
  • Initialiseurs d'index

8. C# Version 7.0

Cette version présente les avantages ci-dessous

Variables de sortie : Cette variable est essentiellement utilisée lorsque la méthode doit renvoyer plusieurs valeurs. Le mot-clé out est utilisé pour passer aux arguments.

D'autres aspects importants sont

  • Tuples et déconstruction.
  • Réf locaux et retours.
  • Rejets : ce sont des variables prêtes en écriture seule. Fondamentalement, ceci est utilisé pour ignorer les variables locales.
  • Littéraux binaires et séparateurs de chiffres.
  • Lancer des expressions
  • Correspondance de modèles : nous pouvons l'utiliser sur n'importe quel type de données.
  • Fonctions locales : A l'aide de cette fonction nous pouvons déclarer la méthode dans le corps qui est déjà définie dans la méthode.
  • Membres au corps d'expression élargi.

9. C# Version 8.0

C# 8.0, publié en 2019, a introduit les types de référence nullables, une fonctionnalité importante pour améliorer la sécurité du code. Il permet aux développeurs d'annoter leur code pour exprimer leurs intentions quant à savoir si une variable peut contenir une valeur nulle, aidant ainsi à détecter les exceptions de référence nulle au moment de la compilation. De plus, C# 8.0 a apporté des améliorations telles que les flux asynchrones, simplifiant le développement d'applications asynchrones et réactives, ainsi que des améliorations de la correspondance de modèles. Ensemble, ces fonctionnalités rendent le code plus fiable, lisible et efficace, faisant de C# 8.0 une étape précieuse dans l'évolution du langage pour le développement de logiciels modernes.

10. C# Version 9.0

C# 9.0, sorti en 2020, a apporté des améliorations significatives au langage. Sa fonctionnalité remarquable était l'introduction de types d'enregistrement, simplifiant la création de classes de données en fournissant une égalité de valeur intégrée, une immuabilité et une correspondance de modèles. Il a également introduit des générateurs de sources, permettant la génération automatique de code au moment de la compilation, ce qui améliore la génération et l'analyse de code. De plus, C# 9.0 a amélioré la correspondance de modèles avec de nouvelles fonctionnalités et ajouté la prise en charge des pointeurs de fonction et des instructions de niveau supérieur, rendant le code plus concis et plus lisible. Ces changements ont amélioré la productivité des développeurs et la sécurité du code, consolidant ainsi C# en tant que langage de programmation moderne et polyvalent.

11. C# Version 10.0

C# version 10.0 est la dernière version du langage de programmation C#, publiée en novembre 2021. Elle inclut plusieurs nouvelles fonctionnalités et améliorations pour le rendre plus efficace et plus facile à utiliser. Certaines fonctionnalités notables de C# 10.0 incluent :

  • Utilisations globales : Cette fonctionnalité permet aux développeurs de définir des directives globales pour l'ensemble du programme.
  • Espaces de noms au niveau des fichiers : Grâce à cette fonctionnalité, les développeurs peuvent définir des espaces de noms au niveau du fichier, ce qui facilite l'organisation du code et évite les conflits de noms.
  • Prise en charge lambda améliorée : C# 10.0 introduit des expressions lambda améliorées, permettant aux développeurs d'écrire du code plus court et plus concis.
  • Chaînes interpolées comme chaînes de format : Cette fonctionnalité permet aux développeurs d'utiliser des chaînes interpolées comme chaînes de format, simplifiant ainsi le processus de formatage des chaînes.
  • Correspondance de modèles améliorée : C# 10.0 inclut des améliorations de la correspondance de modèles qui la rendent plus puissante et plus flexible.
  • Nouvelles fonctionnalités dans le runtime .NET : C# 10.0 inclut également de nouvelles fonctionnalités dans le runtime .NET, telles que la prise en charge d'ARM64 et l'amélioration des performances pour la compilation JIT.

12. C# Version 11.0

C# 11 a introduit plusieurs nouvelles fonctionnalités, notamment les littéraux de chaîne bruts, la prise en charge mathématique générique, les attributs génériques, les littéraux de chaîne UTF-8, les nouvelles lignes dans les expressions d'interpolation de chaîne, les modèles de liste, les types locaux de fichiers, les membres requis, les structures automatiques par défaut, correspondance de motifs pour Span sur une chaîne constante, un nom de portée étendu, un IntPtr numérique, des champs de référence, une référence de portée, une conversion améliorée du groupe de méthodes en délégué et la septième vague d'avertissement. Ces ajouts visaient à améliorer la polyvalence, les performances et l’expérience des développeurs du langage, en offrant des outils et des capacités améliorés pour le développement de logiciels.

Ainsi, chaque version inclut de nouvelles fonctionnalités en C# qui aident les développeurs à résoudre les problèmes complexes de manière efficace.

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
Article précédent:Utilisations de C#Article suivant:Utilisations de C#