我正在使用System.Web.Helpers.WebGrid
ASP.NET MVC 3 Razor 项目,但我无法理解为什么 a 的格式参数WebGridColumn
是Func<dynamic, object>
.
如果我创建这样的列...
grid.Column(
format: x => string.Format("{0:d}", x.StartDate)
);
...我没有在 StartDate 属性上输入强类型。如果我试着像这样绕过它......
grid.Column(
format: (MyObjectType x) => string.Format("{0:d}", x.StartDate)
);
...我在运行时被告知我的 lambda 不能转换为Func<dynamic, object>
. 有什么方法可以在这里使用非动态 lambda 吗?哪怕只是<object, object>
?
(我在 .NET 4.0 中,Func<in T, out TResult>
应该在 T 上是逆变的,但我对协变和逆变如何与动态一起工作感到困惑。)