Fusionner opérateur en C#?
Je pense que je me souviens avoir vu quelque chose de semblable à la ?: opérateur ternaire en C# qui n'ont eu que deux parties et serait de retour la valeur de la variable si elle n'était pas nulle et une valeur par défaut si elle l'était. Quelque chose comme ceci:
tb_MyTextBox.Text = o.Member ??SOME OPERATOR HERE?? "default";
Essentiellement l'équivalent de ceci:
tb_MyTextBox.Text = o.Member != null ? o.Member : "default";
Une telle chose existe ou n'ai-je viens de l'imaginer en voyant cela quelque part?
Double -> stackoverflow.com/questions/463155/...
mais c'est sur l'opérateur ternaire alors que c'est à propos de la coalescence de l'opérateur (malgré le titre)
alors que le titre de ma question est un peu trompeur si vous avez lu ma question, vous verrez que cela n'a rien à voir avec le double que vous avez suggéré.
en effet, le titre est un peu déroutant. C'est quelque chose comme ceci @Abe est à la recherche de spinningtheweb.blogspot.com/2006/09/c-coalesce-operator.html. Il pourrait peut-être régler la question du titre.
??CERTAINS OPÉRATEUR?? - si près, si près... ;>
mais c'est sur l'opérateur ternaire alors que c'est à propos de la coalescence de l'opérateur (malgré le titre)
alors que le titre de ma question est un peu trompeur si vous avez lu ma question, vous verrez que cela n'a rien à voir avec le double que vous avez suggéré.
en effet, le titre est un peu déroutant. C'est quelque chose comme ceci @Abe est à la recherche de spinningtheweb.blogspot.com/2006/09/c-coalesce-operator.html. Il pourrait peut-être régler la question du titre.
??CERTAINS OPÉRATEUR?? - si près, si près... ;>
OriginalL'auteur Abe Miessler | 2010-10-13
Vous devez vous connecter pour publier un commentaire.
Yup:
http://msdn.microsoft.com/en-us/library/ms173224(SV.80).aspx
OriginalL'auteur Pete
Bien, ce n'est pas tout à fait la même que la opérateur conditionnel, mais je pense que vous êtes en train de penser de la null coalescence de l'opérateur (??). (Je suppose que vous avez dit que c'était "similaire" 🙂 Note que "ternaire", renvoie le nombre d'opérandes de l'opérateur est - ainsi, alors que l'opérateur conditionnel est un opérateur ternaire, le nul de la coalescence de l'opérateur est un opérateur binaire.
Générale prend cette forme:
Ici
second
sera évaluée uniquement sifirst
est null. Il n'a pas à être la cible d'une cession - vous pouvez l'utiliser pour évaluer l'argument d'une méthode, par exemple.Noter que le premier opérande a être nullable - mais la seconde ne l'est pas. Bien qu'il existe certains détails spécifiques autour de conversions, dans le cas simple du type de l'expression globale est le type de la deuxième opérande. En raison de l'associativité, vous pouvez empiler les usages de l'opérateur soigneusement trop:
Remarque comment
x
ety
sont nullable, maisz
etresult
ne le sont pas. Bien sûr,z
pourrait être nullable, mais alorsresult
devrait être nullable trop.Essentiellement les opérandes seront évalués dans l'ordre où ils apparaissent dans le code, l'évaluation s'arrête dès qu'il trouve une valeur non null.
Oh, et bien que le ci-dessus est affichée en termes de types de valeur, il fonctionne avec les types de référence (qui sont toujours nullable).
OriginalL'auteur Jon Skeet
Drôle que vous avez utilisé "??CERTAINS OPÉRATEUR ICI??", comme l'opérateur que vous cherchez est "??", c'est à dire:
http://msdn.microsoft.com/en-us/library/ms173224.aspx
OriginalL'auteur Keith
Oui, il est appelé le Nul de la Coalescence de l'opérateur:
OriginalL'auteur Kev