21
janvier
2006
C# 2.0 et l’opérateur ??
janvier
2006
Je viens de lire un article très intéressant sur l’opérateur ?? en C# 2.0
Apparement, cet opérateur très peu utilisé pour le moment par les développeurs, pourrait faire gagner pas mal de temps dans l’écriture de lignes de code
Un exemple:
string s = (MyString == null) ? "null" : "MyString";
Ce bout de code, relativement simple pour ceux habitués aux Framework .NET 2.0 et aux types nullables, pourrait en fait s’écrire de la manière suivante:
string s = MyString ?? "null";
J’avoue que je suis impressionné: c’est en effet très pratique et à la fois très peu connu comme opérateur: voila qui devrait, je l’espère, changer les choses
Vous aurez plus d’informations sur cet opérateur ici: http://blogs.msdn.com/abhinaba/archive/2005/11/03/488593.aspx
A+
9 Commentaires + Ajouter un commentaire
Articles récents
- [Mix 07] Annonces diverses dont la possibilité de développer des applications SilverLight avec du code managé !
- [WPF] Article d’introduction à Windows Presentation Foundation Everywhere
- [WPF] Les CTP de WPF /E et Expression Studio sont en ligne !
- [Event] Première rencontre du Dotnet User Group (DUG)
- [.NET 3] Présentation du Framework .NET 3.0
Commentaires récents
- [Tips] Ouvrir un fichier vhd sans lancer une VPC dans
- [WPF] Article d’introduction à Windows Presentation Foundation Everywhere dans
- [WPF] Article d’introduction à Windows Presentation Foundation Everywhere dans
- Visual Basic Express 2005 et Visual Web Developer Express 2005 disponibles EN FRANCAIS ! dans
- [.NET 3] Présentation du Framework .NET 3.0 dans
Archives
- avril 2007
- décembre 2006
- novembre 2006
- octobre 2006
- septembre 2006
- août 2006
- juillet 2006
- juin 2006
- mai 2006
- avril 2006
- mars 2006
- février 2006
- janvier 2006
- décembre 2005
- novembre 2005
- octobre 2005
- septembre 2005
- août 2005
- juillet 2005
- juin 2005
- mai 2005
- avril 2005
- mars 2005
- février 2005
- janvier 2005
- décembre 2004
- novembre 2004
- octobre 2004
>> Ok, mais tu admettras que ton code reste tout de même plus long à écrire que celui avec ??
Oui bien sûr je n’ai jamais di le contraire mais perso je le trouve plus lisible…
Je viens du C et j’ai trop souvent vu des sources illisibles… donc je me méfie
Ok, mais tu admettras que ton code reste tout de même plus long à écrire que celui avec ??
Je trouve que c’est à la fois une bonne idée et une mauvaise idée…
C’est une bonne idée car l’opérateur ?: est le plus souvent utiliser pour affecter une valeur par défaut lorsqu’une référence est null…
Toutfois comme l’as dit Perrich cela rajoute une nouvelle syntaxe… Et si on rajoute un nouvel opérateur pour chaque ‘code-type’ afin de gagner quelques lignes voir quelques caractères, on se retrouve vite avec un code très court mais difficile à relire…
Peros je préfère de loin un simple if :
if (s == null) { <br />
s = "null"; <br />
}
a++
La syntaxe (test ? {si true} : {si false} ) n’est pas propre au C# mais est quasiment commune à l’ensemble des langages actuels de développement. Ce ne devrait donc pas être quelque chose de nouveau.
Comme l’indique Morpheus, le ?? est par contre une nouveauté (je crois que l’on en a déjà parlé sur Developpez). Maintenant le problème de l’adoption de ce nouvel opérateur est qu’il est spécifique et donc peu connu. Même si le code est légèrement simplifié, il en demeure complexifié par l’ajout d’une nouvelle syntaxe. Il faut donc s’y faire…
Je ne connais pas C# pour commencer.
Je ne vois pas trop le coté « révolutionnaire » de ce code, c’est juste une sorte de macro, qui doit etre convertie pendant la compilation.
Je suis tout de même d’accord que la lisibilité est meilleure. Dans le cadre de beaucoup de test, on doit même y gagner dans la taille du code..
ok

Merci
Je pourrais dormir ce soir en sachant que je suis un peu moins bête en C#
Ce bout de code te permet de tester si MyString est null. Si oui, on affecte à MyString (qui est une chaine de caractères) la valeur « null ».
désolé de paraitre ignare mais ce bout de code fait quoi???
Je n’ai jamais fait de C#, j’en ai seulement lu, mais j’aimerais quand même savoir ce que cela fait…
Merci, je ne connaissais pas, ça va bien me simplifier certaine choses