【发布时间】:2014-12-21 04:36:01
【问题描述】:
我需要能够让一个变量类型存储对不同方法的引用,然后用不同的参数调用它们,并让它们返回一些东西。这些方法将具有不同的参数类型和输出类型。我已经尝试过委托、动作和 Func。
下面的伪代码示例
public void Open(String directory){
File.Open(Directory);
}
public string ChangeVolume(int volume){
//Code to change volume
//return the new volume
}
public static void Main{
MyVaribleType var1 = Open;
myVaribleType var2 = ChangeVolume;
var1("C:\Windows");
Console.WriteLine(var2(100) );
}
我将如何使用单个变量类型完成此操作?
【问题讨论】:
-
你真的做不到。
-
您不能为两种不同的类型使用一个“变量类型”。
void不是string,String不是int。但是,您可以将签名更改为object Method(object[] params)以尽可能通用,但我不建议这样做。 -
告诉我们您要解决的问题。也许有比这更好的解决方法。
-
这是一个人工智能。当人工智能看到一个词时,它必须进入它的记忆并搜索这个词,然后执行与那个词相关的动作/方法,但是与那个词相关的动作可能会改变(学习人工智能,或者我手动改变它)
标签: c# methods delegates wrapper