DotnetDojo

Développer des applications modernes avec les technologies Microsoft et Open source

  • Blog
  • Vidéos
  • Formations
  • Outils

Mieux coder avec l’opérateur ??

Il existe en C# un opérateur peu connu et du coup, peu utilisé. Pourtant, il permet de vraiment simplifier votre code.

L’opérateur dont je parle est ?? (null coalescing operator).
Il s’utilise sur des types pouvant avoir une valeur null.

Voici comment l’utiliser :

string nom = utilisateur ?? string.Empty;

Dans cet exemple, l’opérateur ?? fonctionne de la manière suivante :

  • Si utilisateur est non null, alors utilisateur est assigné à nom,
  • Sinon, string.Empty (chaine vide) est assigné à nom.

Le code précédent est identique à :

string nom = utilisateur;

if (utilisateur == null) nom = string.Empty;

L’opérateur ?? permet d’améliorer votre code en écrivant des algorithmes plus simples (moins d’imbrications de blocs) et surtout il améliore aussi la lisibilité.

A vous d’essayer

L’avez-vous déjà utilisé dans vos projets ? Faites-moi part de vos retours !

Avez-vous apprécié cet article ?

Pour rester informé, inscrivez-vous !

  • Vous aurez accès aux bonus complémentaires
  • Vous serez prévenu des nouveaux articles

Entrez simplement votre adresse email :
Votre adresse restera confidentielle. Vous pouvez vous désinscrire à tout moment.

Besoin de résultats rapides ?

Découvrez les formations vidéos que je propose :

  

 

Formations en présentiel (dans toute la France)

Découvrez également les formations C# et .NET que je donne en présentiel (en France)

Comments

  1. Philippe says

    25 janvier 2013 at 17 h 19 min

    Il me semble que le choix pour illustrer cet opérateur d’une string est un mauvais choix (car il peut prendre la valeur nulle et n’illustre pas le bénéfice de cet opérateur). Remplacer dans votre code par un int et votre code n’est pas valide (et ne compilera pas!).
    Par conséquent, le code equivalent serait plutot
    int valeur;
    if (valeurInitiale.HasValue)
    valeur= string.Empty;
    else valeur= valeurInitiale.Value;

    car si on fait ça avec un int par exemple :
    int? valeurInitiale;
    [du code où valeurInitiale prend une valeur]
    int valeur = valeurInitiale; //ne compile pas (sauf avec des strings qui est un type batard en c#)
    int valeur = valeurInitiale.Value; //compile mais crash si valeurInitiale est null

    • Pascal Lacroix says

      28 janvier 2013 at 20 h 32 min

      Merci Philippe pour le complément.

      Effectivement, j’ai oublié de préciser que l’opérateur ne s’applique que sur des types nullables.

Le guide gratuit pour écrire du meilleur code dès aujourd'hui.
Entrez votre email pour le recevoir.

A propos de DotnetDojo

Pascal Lacroix

Je m’appelle Pascal et je suis passionné par le développement logiciel, l’efficacité et l’entrepreneuriat. Sur DotnetDojo, je vous propose des méthodes pour apprendre à développer des applications modernes avec les technologies Microsoft et Open Source.

En savoir plus

  • Populaire
  • Récent

Liens complémentaires

  • A propos de DotnetDojo
  • 18 principes pour professionnaliser le développement logiciel
  • Boite à outils du développeur
  • Tous les articles
  • Liste des formations
  • Contact

Copyright 2019 Jupiteo · Mentions légales · Contact · CGV · Offres d'emploi .NET · Formations Dotnet

Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considérerons que vous acceptez l'utilisation des cookies.Ok