IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft annonce la sortie de C# 10 dans le cadre de .NET 6 et Visual Studio 2022.
C# 10 apporte des améliorations aux expressions lambda et plusieurs fonctionnalités

Le , par Stéphane le calme

106PARTAGES

8  0 
« Aujourd'hui, nous sommes heureux d'annoncer la sortie de C# 10 dans le cadre de .NET 6 et Visual Studio 2022 », a indiqué Kathleen Dollard, Principal Program Manager, .NET. Voici les améliorations et nouveautés apportées par cette version.

Utilisations globales et implicites

Les directives using simplifient la façon dont vous travaillez avec les espaces de noms. C# 10 inclut une nouvelle directive using global et des utilisations implicites pour réduire le nombre d'utilisations que vous devez spécifier en haut de chaque fichier.

Directives global using

Si le mot-clé global apparaît avant une directive using, cette utilisation s'applique à l'ensemble du projet*:

Code C# : Sélectionner tout
global using System;

Vous pouvez utiliser n'importe quelle fonctionnalité de using dans une directive using global. Par exemple, l'ajout de static importe un type et rend les membres du type et les types imbriqués disponibles dans tout votre projet. Si vous utilisez un alias dans votre directive using, cet alias affectera également l'ensemble de votre projet*:

Code C# : Sélectionner tout
1
2
global using static System.Console; 
global using Env = System.Environment;

Vous pouvez mettre using global dans n'importe quel fichier .cs, y compris Program.cs ou un fichier spécifiquement nommé comme globalusings.cs. Le périmètre de using global est la compilation en cours, qui correspond généralement au projet en cours.

modificateur static

La directive using static nomme un type dont les membres statiques et les types imbriqués vous pouvez accéder sans spécifier de nom de type. La directive using static a été introduite avec C# 6. Sa syntaxe est la suivante :

Code C# : Sélectionner tout
using static <nom de type complet>;

Le <nom de type complet> est le nom du type dont les membres statiques et les types imbriqués peuvent être référencés sans spécifier de nom de type. Si vous ne fournissez pas de nom de type qualifié complet (le nom d’espace de noms complet avec le nom de type), C# génère l’erreur de compilateur CS0246: « le type ou le nom d’espace de noms’type/espace de noms’est introuvable (une directive using ou une référence d'assemblage est-elle manquante ?) ».

La directive using static s’applique à tout type ayant des membres statiques (ou des types imbriqués), même s’il a également des membres d’instance. Toutefois, les membres d’instance ne peuvent être appelés que par l’instance du type.

Vous pouvez accéder aux membres statiques d'un type sans devoir qualifier l'accès avec le nom du type :

Code C# : Sélectionner tout
1
2
3
4
5
6
7
8
9
using static System.Console; 
using static System.Math; 
class Program 
{ 
    static void Main() 
    { 
        WriteLine(Sqrt(3*3 + 4*4)); 
    } 
}

En général, quand vous appelez un membre statique, vous indiquez le nom du type, ainsi que le nom du membre. Entrer plusieurs fois le même nom de type pour appeler des membres du type peut produire du code détaillé et peu clair. Par exemple, la définition suivante d’une classe Circle fait référence à de nombreux membres de la classe Math :

Code C# : Sélectionner tout
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
using System; 
  
public class Circle 
{ 
   public Circle(double radius) 
   { 
      Radius = radius; 
   } 
  
   public double Radius { get; set; } 
  
   public double Diameter 
   { 
      get { return 2 * Radius; } 
   } 
  
   public double Circumference 
   { 
      get { return 2 * Radius * Math.PI; } 
   } 
  
   public double Area 
   { 
      get { return Math.PI * Math.Pow(Radius, 2); } 
   } 
}

En éliminant la nécessité de référencer explicitement la classe Math chaque fois qu’un membre est référencé, la directive using static génère du code plus propre :

Code C# : Sélectionner tout
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
using System; 
using static System.Math; 
  
public class Circle 
{ 
   public Circle(double radius) 
   { 
      Radius = radius; 
   } 
  
   public double Radius { get; set; } 
  
   public double Diameter 
   { 
      get { return 2 * Radius; } 
   } 
  
   public double Circumference 
   { 
      get { return 2 * Radius * PI; } 
   } 
  
   public double Area 
   { 
      get { return PI * Pow(Radius, 2); } 
   } 
}

using static importe uniquement les membres statiques accessibles et les types imbriqués déclarés dans le type spécifié. Les membres hérités ne sont pas importés. vous pouvez importer à partir de n’importe quel type nommé avec une directive using static, y compris Visual Basic modules. Si des fonctions de niveau supérieur F# apparaissent dans les métadonnées comme membres statiques d’un type nommé dont le nom est un identificateur C# valide, les fonctions F# peuvent être importées.

using static rend les méthodes d'extension déclarées dans le type spécifié disponibles pour la recherche de méthode d'extension. Toutefois, les noms des méthodes d’extension ne sont pas importés dans la portée pour une référence non qualifiée dans le code.

Les méthodes portant le même nom et qui sont importées à partir de différents types par différentes directives using static dans la même unité de compilation ou le même espace de noms forment un groupe de méthodes. La résolution de surcharge au sein de ces groupes de méthodes suit des règles C# normales.

L’exemple suivant utilise la directive using static pour que les membres statiques des classes Console, Math et String soient disponibles sans que vous ayez à spécifier leur nom de type :...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de youtpout978
Expert confirmé https://www.developpez.com
Le 09/11/2021 à 14:20
Citation Envoyé par Issam Voir le message
heuuu, il n'y a pas de version 2018
Je pense il veut dire 2008
0  0