J'aime le null-coalescence de l'opérateur car il est facile d'attribuer une valeur par défaut pour les types nullables.
int y = x ?? -1;
C'est très bien, sauf si j'ai besoin de faire quelque chose de simple avec x
. Par exemple, si je veux vérifier Session
, alors j'ai l'habitude de finir par avoir à écrire quelque chose de plus détaillé.
Je souhaite que je pourrais faire ceci:
string y = Session["key"].ToString() ?? "none";
Mais vous ne pouvez pas parce que l' .ToString()
est appelée avant le nul de vérifier si elle échoue si Session["key"]
a la valeur null. J'ai fini par faire ceci:
string y = Session["key"] == null ? "none" : Session["key"].ToString();
Il fonctionne et qui est mieux, à mon avis, que les trois de la ligne de solution de rechange:
string y = "none";
if (Session["key"] != null)
y = Session["key"].ToString();
Même si cela fonctionne, je suis toujours curieux de savoir si il ya une meilleure façon. Il semble peu importe ce que j'ai toujours de référence Session["key"]
deux fois: une fois pour le vérifier, et de nouveau pour la mission. Des idées?