【发布时间】:2014-02-20 14:06:20
【问题描述】:
我希望有一个可以将其他方法作为输入的方法。
输入法总是有一个单一的对象作为输入,但对象是不同的。
这或多或少是我需要做的:
public static void takeAnything(Action<object> inputFunc)
{
Console.WriteLine(inputFunc.Method.Name);
}
public static void test1(MyOwnObject input){
// Do stuff with input object
}
public static void test2(MyOtherOwnObject input){
// Do stuff with input object
}
public static void startSystem(){
takeAnything(test1);
takeAnything(test2);
}
在这个虚拟案例中会写出:
test1
test2
我只是无法让它工作,所以非常感谢任何帮助。
编辑
我不知道这是否可能,也许不可能,但重要的是呼叫只是takeAnything(test1),而不是takeAnything<MyOwnObject>(test1) 或其他任何东西。
【问题讨论】:
-
您遇到的具体问题是什么?您是否考虑过将
TakeAnything变成一个泛型方法(即TakeAnything<T>(Action<T> inputFunc)? -
我已经尝试过了,但我只能让它工作调用它:takeAnything
(test),如果我删除 部分我得到这个错误:类型参数无法从用法中推断出方法“takeAnything (System.Action )”。尝试明确指定类型参数。我不知道这是否可能,这就是我希望你们能帮助我弄清楚:)
标签: c#