2015-03-03 78 views
0

我遇到了问题。我只知道如何使用动作和func,但问题是我需要把一个方法放入这样的构造函数中。如何将一个方法添加到构造函数中?

Reader read = new Reader(1000, cki, method); 

但问题是,该方法需要这样的输入。

public static void method(int Integer) 

我在那种情况下做什么?

+0

阅读:http://stackoverflow.com/questions/2082615/pass-method-as-parameter-using-c-sharp – 2015-03-03 13:10:28

回答

2

您可以使用的Action构造parameter.The返回类型的Action<int>void和通用的说法是参数type.So它与你的方法,它需要一个int并返回void匹配。

+0

它与工作? – Hui 2015-03-03 13:00:27

+0

它说参数3:不能从'方法组'转换为'System.Action' – Hui 2015-03-03 13:03:04

+0

既不能与字符串一起工作 – Hui 2015-03-03 13:06:08

0

不能使用的方法,但你可以使用一个动作

public Reader(int first, object cki, Action method) 
{ 
    //ctor code here 
    method.Invoke(); 
} 

不是使用:

var reader = new Reader(1000, cki,() => SomeMethod(123)); 
+0

我知道。但它对我没有任何好处 – Hui 2015-03-03 13:01:04

+0

你到底在做什么?你不能传递一个方法。 – Darek 2015-03-03 13:01:30

+0

是的,我看到参数3:不能从'方法组'转换为'System.Action' – Hui 2015-03-03 13:03:13

0

看来你正在寻找Action<int>和withing像构造函数中调用它以下?

using System; 

public class Program 
{ 
    public static void Main() 
    { 
     Sample s = new Sample((i) => {Console.WriteLine(i);}); 
    } 
} 

public class Sample 
{ 
    public Sample(Action<int> method) 
    { 
     method(5); 
    } 
} 
相关问题