Хорошо, это очень запутанный случай, на который мы наткнулись, но мне стало любопытно.
Рассмотрим следующий код:
public class Foo
{
private int foo;
public int Reset() => foo = 0; //remember, assignment expressions
//return something!
}
Будет ли этот код компилироваться?
Нет, не будет, если у вас будет ошибка по всем предупреждениям; вы получите предупреждение member foo is assigned but never used
.
Этот код для всех целей такой же, как:
public class Foo
{
private int foo;
public int Reset() { foo = 0; return foo; }
}
Который компилируется просто отлично, так в чем здесь проблема? Обратите внимание, что синтаксис =>
не является проблемой, он возвращает выражение присваивания, которое, кажется, сбивает с толку компилятор.