Его называют оператором слияния нуль.
String someValue = null;
var thisValue = "Foo";
var test = someValue ?? thisValue;
// test will be == "Foo"
Как уже упоминалось в комментариях, это не работает для пустых строк, "ложных" и т. Д. Что вы можете сделать в C #, это написатьметод расширения, чтобы сделать это, если вы действительно хотите:
public static class MyStringThing {
public static String FixErUp(this String s1, String s2) {
if (String.IsNullOrWhiteSpace(s1) || s1.Equals("false"))
return s2;
return s1;
}
}
для использования следующим образом:
String someValue = "false";
var thisValue = "Foo";
var test = someValue.FixErUp(thisValue);
// test will be == "Foo"