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