【发布时间】:2017-11-01 00:29:00
【问题描述】:
好的,这是我们偶然发现的一个很长的角落案例,但这让我很好奇。
考虑以下代码:
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; }
}
哪个编译得很好,那么这里的问题是什么?请注意,=> 语法不是问题,它返回的赋值表达式似乎使编译器感到困惑。
【问题讨论】:
-
我正要说,这些不相等 - 寻找 IL 但是...答案就在那里
-
这是一个较短的编译器规范是不够的。 stackoverflow.com/questions/45992172/…
标签: c# compiler-warnings visual-studio-mac