"Странный" синтаксис C # - PullRequest
2 голосов
/ 08 сентября 2011

Я только что видел это в проекте, который я скачал из Code Project:

base.DialogResult = this.Result != null;

Я не считаю себя новичком в C #, но этот новый для меня.Может кто-нибудь сказать мне, что происходит с этим утверждением?

Редактировать Отличные ответы, спасибо.Я просто никогда не использовал это раньше.

Ответы [ 5 ]

9 голосов
/ 08 сентября 2011

Если вы добавляете паренсы, их легче читать (и понимать). Оператор логического сравнения != предшествует оператору присваивания =:

base.DialogResult = (this.Result != null);

То же утверждение, еще более многословное:

if (this.Result != null)
    base.DialogResult = true;
else
    base.DialogResult = false;
4 голосов
/ 08 сентября 2011

this.Result != null оценивается как логическое значение, true или false.

Результат оценки устанавливается в DialogResult элементе базового класса.

Не странно, это просто задание.

3 голосов
/ 08 сентября 2011

Оператор != (не равен) имеет приоритет над оператором = (назначение).

2 голосов
/ 08 сентября 2011

Это просто, в основном он присваивает результат выражения

this.Result != null

base.DialogResult

выражение использует оператор равенства, поэтому возвращает либо true, либо false,в зависимости от того, будет ли это. Результат равен нулю или нет

0 голосов
/ 08 сентября 2011

Это значит:

bool g = (this.Result != null);
this.DialogResult = g;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...