我在玩弄我的C#项目时,发现这段代码可以编译通过:
var a = new Action<string>(ref b => b = "hello");
将它反过来,比如 Action<string> a = ref b => b = "hello";
会在'ref'处产生语法错误。
将这个片段复制粘贴到http://dotnetfiddle.net中,会得到编译器错误:
A ref or out argument must be an assignable variable
我是否遇到了编译器中的错误?(我使用的是VS2015和C#6。)
编辑:刚刚在.NET Fiddle上切换到Roslyn编译器,它仍然会产生相同的错误。
ref
一样。看起来像是一个 bug(如果还没有报告的话可能需要报告)。 - Lucas Trzesniewski(ref string b) => b="hello"
(请注意括号和类型string
),它能被编译器转换为Action<string>
吗?我现在无法访问Visual C# 6编译器。 - Jeppe Stig Nielsen