类</t>中的Func <t>范围

时间:2012-10-28 11:14:12

标签: c# delegates

为什么我不能这样做?

public int FillModel(int id)
{
   // do something...
   return 0;
}

public Func<int, int> actiontest = FilleModel;

代码无法编译并告诉我没有引用?

2 个答案:

答案 0 :(得分:2)

正如他在评论中所说 L.B 你应该改变:

public Func<int, int> actiontest = FilleModel;  //FilleModel doesn't exist

使用:

Func<int, int> actiontest = FillModel;

否则,如果你想公开它:

public Func<int, int> actiontest;

public myClass(){
   actiontest = FillModel;
}

或者:

public Func<int, int> actiontest = FillModel;

private static int FillModel(int id) //private else the delegate doesn't make sense
{
   // do something...
   return 0;
}

答案 1 :(得分:0)

一个重要的事情,除了改变:

public Func<int, int> actiontest = FilleModel; 

Func<int, int> actiontest = FillModel;

您无法在类级中拥有直接声明。您只能在某些行为MethodProperty setter / getter中包含此类声明。