C#通过变量引用方法?

C#通过变量引用方法?,c#,visual-studio,winapi,variables,methods,C#,Visual Studio,Winapi,Variables,Methods,假设我有一个方法 public static void Blah(object MyMethod) { // i dont know what to replace object with MyMethod; // or however you would use the variable } 所以基本上我需要能够通过一个变量引用一个方法 用法: UseDoSomething(DoSomething); 或者使用lambda语法(如果DoSomething是Hello World): 代理

假设我有一个方法

public static void Blah(object MyMethod) { // i dont know what to replace object with
MyMethod; // or however you would use the variable
}
所以基本上我需要能够通过一个变量引用一个方法

用法:

UseDoSomething(DoSomething);
或者使用lambda语法(如果DoSomething是Hello World):


代理还可以使用快捷语法,其形式为和类型:

如果需要从代理返回值(如我的示例中的
int
),可以使用:

public void UseDoSomething2(Func<int> d)
public void UseDoSomething2(Func d)

注意:并提供允许传递参数的通用重载。

Net framework内置了一系列委托类型,这使得传递更容易。因此,如果
MyMethod
采用
string
参数,则可以执行以下操作:

public static void Blah(Action<string> MyMethod) { 
    MyMethod; 
} 
Action
Func
的版本有多种类型参数,您可以根据需要指定这些类型参数。

可能重复的
public void UseDoSomething(Action d)
public void UseDoSomething2(Func<int> d)
public static void Blah(Action<string> MyMethod) { 
    MyMethod; 
} 
public static void Blah(Func<int, int, long> MyMethod) { 
    MyMethod; 
}