Я использовал нулевой оператор объединения в ответах, как показано ниже

return Variable??"undefined";

Но приведенный ниже код

return Variable??Variable="undefined";

Я не мог понять, как это работает, поскольку второй параметр оператора - это оператор присваивания, и мне интересно, как работает возврат.

Может кто-нибудь помочь мне понять

-2
Samuel A C 23 Окт 2018 в 18:34

2 ответа

Лучший ответ

Из документов:

Оператор присваивания (=) сохраняет значение своего правого операнда. в месте хранения, свойстве или индексаторе, обозначенном его левой операнд и возвращает значение как результат

Таким образом, возвращаемое значение присваивания - это присваиваемое значение. Variable = "undefined" для этого возвращает "undefined". Затем это может быть возвращено вашим методом. С другой стороны, ?? - это просто сокращение для простого оператора if.

Итак, следующий код очень похож на ваш код:

if(Variable != null)
    return Variable
Variable = "undefined";
return Variable;
4
HimBromBeere 23 Окт 2018 в 15:54

В C # операция присвоения также возвращает присвоенное значение. Например

Value=Value=Value=Value="Hello World"

Действительный код. Назначение оценивается первым справа налево. В вашем случае присвоение> нулевой оператор объединения. Вы можете переписать свой код на

string returnValue="";
if(Variable==null)
    returnValue=Variable="undefined";
else
    returnValue=Variable;
return returnValue;
3
Eike S 23 Окт 2018 в 15:38
52952861