2008-09-03 5 views
5

Existe-t-il une seule instruction ou une seule ligne pour accomplir quelque chose comme ceci, où la chaîne s est déclarée ET la première valeur non-nulle dans l'expression?Quel est l'équivalent C# de la fonction Oracle PL/SQL COALESCE?

//pseudo-codeish 
string s = Coalesce(string1, string2, string3); 

ou, plus généralement,

object obj = Coalesce(obj1, obj2, obj3, ...objx); 

Répondre

2

le ?? opérateur.

string a = nullstring ?? "empty!"; 
14

Comme dit Darren Kopp.

Votre déclaration

object obj = Coalesce(obj1, obj2, obj3, ...objx); 

peut être écrit comme ceci:

object obj = obj1 ?? obj2 ?? obj3 ?? ... objx; 

pour mettre en d'autres termes:

var a = b ?? c; 

est équivalent à

var a = b != null ? b : c;