Нулевой оператор объединения в операторах возврата - c # - PullRequest
0 голосов
/ 23 октября 2018

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

return Variable??"undefined";

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

return Variable??Variable="undefined";

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

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

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

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

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

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

string returnValue="";
if(Variable==null)
    returnValue=Variable="undefined";
else
    returnValue=Variable;
return returnValue;
0 голосов
/ 23 октября 2018

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

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

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

Таким образом, следующее довольно похоже на ваш код:

if(Variable != null)
    return Variable
Variable = "undefined";
return Variable;
...