Это разрешено:
int a, b, c;
a = b = c = 16;
string s = null;
while ((s = "Hello") != null) ;
Насколько я понимаю, назначение s = "Hello";
должно приводить к "Hello"
для "Hello"
для s
, но операция не должна возвращать какое-либо значение. Если это правда, то ((s = "Hello") != null)
приведет к ошибке, так как null
будет сравниваться ни с чем.
В чем заключается причина, позволяющая операторам присваивания возвращать значение?