public T Prop = new Ctor(Method);
private K Method(U controller, V request);
我得到它不能访问Method
在这里,因为Method
需要为static
。为什么是这样? Prop
不是static
。这是为什么在静态环境中?
更新:这里的实际签名:
public DataSource(Func<ControllerBase, AjaxDataTable.Request, Result> dataSelector)
这是方法是如何使用的是:
public AjaxDataTable<SourcesViewModel.Source.Channel>.DataSource AjaxData =
new AjaxDataTable<SourcesViewModel.Source.Channel>.DataSource(OnSelectData);
这不是一个问题,因为我并不需要参考this
,所以当我加入this
并且它不再编译时,(该领域不是我的开始,其他人已经这样做了,所以不要因此而恨我)。我把它改成如下:
private AjaxDataTable<SourcesViewModel.Source.Channel>.DataSource ajaxData;
public AjaxDataTable<SourcesViewModel.Source.Channel>.DataSource AjaxData
{
get
{
if (ajaxData == null)
{
ajaxData =
new AjaxDataTable<SourcesViewModel.Source.Channel>
.DataSource(OnDataSelector);
}
return ajaxData;
}
}
但随后ajaxData
私人领域将永远是null
,这使得数据表中每次(这是追加到并发词典,这在导致Exception
再次实例化重复密钥)。我想知道如何分配给不参考this
的字段。这是否会创建在object
的所有实例中重用的内容?
为什么要传递一个方法作为参数?那真的是你打算做的吗?或者你只是想表明你正在调用它并在构造函数中使用结果? – Yuck 2012-01-09 13:53:53
是的,这是一个lambda表达式。 – bevacqua 2012-01-09 13:54:20
@abelenky这就是要点。编译器告诉我这是非法的,因为'Method'需要是'static'。 – bevacqua 2012-01-09 13:55:05