我正在使用 Visual Studio 2012、ASP.NET MVC 4 和 Razor 视图。考虑以下代码:
@{
Action<Action<int>> fun = x => { x(42); };
fun(x => { PrintX(x); }); // This is OK
fun(x => { var z = PrintX(x); }); // This produces error
// "Argument 1: cannot convert from 'lambda expression' to
// 'System.Action<int>'"
}
@helper PrintX(int x) { <div>@x</div> }
不知何故,将字符添加var z =
到 lambda 函数的内容使其无法将其转换为正确的类型(实际上,任何形式的获取该函数的值都会给出这种情况)。
但是,此错误仅由 IntelliSense 产生。它在运行时工作。
是什么赋予了?