Contexte
En PHP, il est un raccourci pour l'opérateur ternaire:Existe-t-il un raccourci pour l'opérateur ternaire en C#?
$value = "";
echo $value ?: "value was empty"; // same as $value == "" ? "value was empty" : $value;
Dans JS il y a aussi un équivalent:
var value = "";
var ret = value || "value was empty"; // same as var ret = value == "" ? "value was empty" : value;
Mais en C#, il y a (pour autant que je sache) seule la version "complète" fonctionne:
string Value = "";
string Result = Value == string.Empty ? "value was empty" : Value;
Donc ma question est la suivante: y a-t-il un raccourci pour l'opérateur ternaire en C#, et sinon, y a-t-il une solution?
recherche
Je trouve les questions suivantes, mais ils se réfèrent à utiliser l'opérateur ternaire comme raccourci pour if-else:
Benefits of using the conditional ?: (ternary) operator
Et celui-ci , mais cela concerne Java:
Is there a PHP like short version of the ternary operator in Java?
Ce que j'ai essayé
Utilisez le style sténographique de PHP (a échoué en raison d'une erreur de syntaxe)
string Value = "";
string Result = Value ?: "value was empty";
Utilisez le style sténographique de JS (a échoué parce que "L'opérateur ||
n'est pas applicable string
et string
. «)
string Value = "";
string Result = Value || "value was empty";
mais l'opérateur ternaire est à courte portée. Est-ce vraiment si difficile de taper une ligne de code? – Liam
Vos exemples exploitent le principe des valeurs truey et falsey, un concept qui n'existe pas (par défaut) en C# fortement typé. –
'valeur || "value was empty" 'n'est pas une main courte pour un opérateur ternaire. C'est une déclaration logique. Ce n'est pas la même chose. Javascript a juste tendance à forcer les valeurs car il n'est pas fortement typé, contrairement à C# – Liam