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 pr�sente les nouvelles fonctionnalit�s du langage de programmation de C# 14 :
Membres d'extension, affectation par condition nulle, propri�t�s field stock�es

Le , par Jade Emy

130PARTAGES

3  0 
Microsoft pr�sente les nouvelles fonctionnalit�s du langage de programmation de C# 14 : membres d�extension, affectation par condition nulle, propri�t�s field stock�es

C# 14 inclut les nouvelles fonctionnalit�s suivantes : Membres d�extension, Mot cl� field, Conversions de port�e implicites, Types g�n�riques non li�s et nameof, Param�tres lambda simples avec modificateurs, Plus de membres partiels, Affectation conditionnelle nulle. Vous pouvez essayer ces fonctionnalit�s � l�aide de la derni�re version de Visual Studio 2022 ou du Kit de d�veloppement logiciel (SDK) .NET 10.

Le langage en C# constitue le langage le plus connu pour la plateforme .NET, un environnement de d�veloppement gratuit, open source et multiplateforme. Les programmes en C# peuvent s�ex�cuter sur plusieurs appareils diff�rents, des appareils Internet des objets (IoT) au cloud et partout entre les deux. Vous pouvez �crire des applications pour les t�l�phones, les appareils de bureau, les ordinateurs portables et les serveurs.

De nouvelles fonctionnalit�s sont disponible pour C#14 et vous pouvez essayer ces fonctionnalit�s � l�aide de la derni�re version de Visual Studio 2022 ou du Kit de d�veloppement logiciel (SDK) .NET 10. Voici les nouvelles fonctionnalit�s suivantes de C#14 :

  • Membres d�extension
  • Affectation par condition nulle
  • nameof prend en charge les types g�n�riques non li�s
  • Conversions implicites suppl�mentaires pour Span<T> et ReadOnlySpan<T>
  • Modificateurs sur des param�tres lambda simples
  • Propri�t�s field stock�es
  • �v�nements et constructeurs partial



Membres d�extension

C# 14 ajoute une nouvelle syntaxe pour d�finir des membres d�extension. La nouvelle syntaxe vous permet de d�clarer des propri�t�s d�extension en plus des m�thodes d�extension. Vous pouvez �galement d�clarer des membres d�extension qui �tendent le type, plut�t qu�une instance du type. En d�autres termes, ces nouveaux membres d�extension peuvent appara�tre en tant que membres statiques du type que vous �tendez. L�exemple de code suivant montre un exemple des diff�rents types de membres d�extension que vous pouvez d�clarer :

Code : 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
public static class Enumerable
{
    // Extension block
    extension<TSource>(IEnumerable<TSource> source) // extension members for IEnumerable<TSource>
    {
        // Extension property:
        public bool IsEmpty => !source.Any();
        // Extension indexer:
        public TSource this[int index] => source.Skip(index).First();

        // Extension method:
        public IEnumerable<TSource> Where(Func<TSource, bool> predicate) { ... }
    }

    // extension block, with a receiver type only
    extension<TSource>(IEnumerable<TSource>) // static extension members for IEnumerable<Source>
    {
        // static extension method:
        public static IEnumerable<TSource> Combine(IEnumerable<TSource> first, IEnumerable<TSource> second) { ... }

        // static extension property:
        public static IEnumerable<TSource> Identity => Enumerable.Empty<TSource>();
    }
}


Les membres du premier bloc d�extension sont appel�s comme s�ils sont des membres d�instance de IEnumerable<TSource>, par exemple sequence.IsEmpty. Les membres du deuxi�me bloc d�extension sont appel�s comme s�ils sont des membres statiques de IEnumerable<TSource>, par exemple IEnumerable<int>.Identity.

Mot cl� field

Le jeton field vous permet d��crire un corps d�accesseur de propri�t� sans d�clarer de champ de stockage explicite. Le jeton field est remplac� par un champ de stockage synth�tis� par un compilateur.

Par exemple, auparavant, si vous souhaitiez vous assurer qu�une propri�t� string ne pouvait pas �tre d�finie sur null, vous deviez d�clarer un champ de stockage et impl�menter les deux accesseurs.

Code : S�lectionner tout
1
2
3
4
5
6
private string _msg;
public string Message
{
    get => _msg;
    set => _msg = value ?? throw new ArgumentNullException(nameof(value));
}

Vous pouvez maintenant simplifier votre code pour :

Code : S�lectionner tout
1
2
3
4
5
public string Message
{
    get;
    set => field = value ?? throw new ArgumentNullException(nameof(value));
}


Vous pouvez d�clarer un corps pour un accesseur ou les deux accesseurs d�une propri�t� stock�e dans un champ.

Il existe un risque de changement cassant ou de confusion lors de la lecture de code dans les types qui incluent �galement un symbole nomm� field. Vous pouvez utiliser @field ou this.field lever l�ambigu�t� entre le field mot cl� et l�identificateur, ou renommer le symbole actuel field pour fournir une meilleure distinction.

Le mot cl� contextuel field est en C# 13 comme fonctionnalit� d�aper�u.

Conversions de port�e implicites

C# 14 introduit la prise en charge de premi�re classe pour System.Span<T> et System.ReadOnlySpan<T> dans le langage. Cette prise en charge implique de nouvelles conversions implicites permettant une programmation plus naturelle avec ces types.

Span<T> et ReadOnlySpan<T> sont utilis�s de nombreuses fa�ons cl�s en C# et au runtime. Leur introduction am�liore les performances sans risquer la s�curit�. C# 14 reconna�t la relation et prend en charge certaines conversions entre ReadOnlySpan<T>, Span<T> et
T[]. Les types d��tendues peuvent �tre des r�cepteurs de m�thode d�extension, se combiner avec d�autres conversions et faciliter des sc�narios d�inf�rence de types g�n�riques.

Types g�n�riques non li�s et nameof

� partir de C# 14, l�argument � nameof peut �tre un type g�n�rique non li�. Par exemple, nameof(List<> a pour r�sultat List. Dans les versions ant�rieures de C#, seuls les types g�n�riques ferm�s, tels que List<int>, peuvent �tre utilis�s pour retourner le List nom.

Param�tres lambda simples avec modificateurs

Vous pouvez ajouter des modificateurs de param�tre, tels que scoped, refin, out ou ref readonly � des param�tres d�expression lambda sans sp�cifier le type de param�tre :

Code : S�lectionner tout
1
2
3
delegate bool TryParse<T>(string text, out T result);
// ...
TryParse<int> parse1 = (text, out result) => Int32.TryParse(text, out result);


Auparavant, l�ajout de modificateurs n��tait autoris� que lorsque les d�clarations de param�tres incluaient les types des param�tres. La d�claration pr�c�dente n�cessite des types sur tous les param�tres :

Code : S�lectionner tout
TryParse<int> parse2 = (string text, out int result) => Int32.TryParse(text, out result);


Le params modificateur n�cessite toujours une liste de param�tres typ�e explicitement.

Plus de membres partiels

Vous pouvez maintenant d�clarer les constructeurs d�instances et les �v�nements en tant que membres partiels.

Les constructeurs partiels et les �v�nements partiels doivent inclure exactement une d�claration de d�finition et une d�claration d�impl�mentation.

Seule la d�claration d�impl�mentation d�un constructeur partiel peut inclure un initialiseur de constructeur : this() ou base(). Une seule d�claration de type partiel peut inclure la syntaxe du constructeur principal.

La d�claration d�impl�mentation d�un �v�nement partiel doit inclure les accesseurs add et remove. La d�claration de d�finition d�clare un �v�nement de type champ.

Affectation conditionnelle nulle

Les op�rateurs d�acc�s de membre conditionnel null, ?. et ?[], peuvent d�sormais �tre utilis�s sur le c�t� gauche d'une affectation ou d'une affectation compos�e.

Avant C# 14, vous devez v�rifier null une variable avant de l�affecter � une propri�t� :

Code : S�lectionner tout
1
2
3
4
if (customer is not null)
{
    customer.Order = GetCurrentOrder();
}


Vous pouvez simplifier le code pr�c�dent � l�aide de l�op�rateur ?. :

Code : S�lectionner tout
customer?.Order = GetCurrentOrder();


Le c�t� droit de l�op�rateur = est �valu� uniquement lorsque le c�t� gauche n�est pas null. Si customer est nul, le code n�appelle pas GetCurrentOrder.

En plus de l�affectation, vous pouvez utiliser des op�rateurs d�acc�s membre conditionnel null avec des op�rateurs d�affectation compos�e (+= et -= d�autres). Cependant, l'incr�mentation et la d�cr�mentation, ++ et --, ne sont pas autoris�es.

Source : Microsoft

Et vous ?

Pensez-vous que ces nouvelles fonctionnalit�s sont cr�dibles ou pertinentes ?
Quel est votre avis sur le sujet ?

Voir aussi :

Microsoft publie .NET 10 Preview 1 : cette pr�version donne un aper�u de C# 14 et met l'accent sur des am�liorations de performance, des optimisations des biblioth�ques et une exp�rience d�veloppeur enrichie

C# 13 : D�couvrez les derni�res fonctionnalit�s en avant-premi�re, dont l'am�lioration de la collection params et la r�solution des surcharges, ainsi que l'ajout des propri�t�s partielles
Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.

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