【发布时间】:2019-03-15 17:04:32
【问题描述】:
我正在开发一个模拟游戏,我在各种类中有一些条件方法,我想将它们用于随机的游戏内事件。
我的目标是创建一个用户友好的事件类,用户可以在其中通过 XML 序列化添加事件(这部分很好)。所以我试图让事情尽可能简单和通用。我在各种类中都有一些条件方法,例如
public class Person
{
static bool IsOlderThan(int age) {/*...*/}
}
public class Faction
{
static bool HasRelationMoreThan(Faction faction,float value) {/*...*/}
}
等等……
我必须定义一个 Func 参数或另一个可以接受这些具有不同参数范围的方法的委托,而不是为它们中的每一个定义不同的字段。 TL;DR:我需要一个接受任何方法作为值的委托类型。
有没有办法像这样创建灵活、通用的方法引用?
【问题讨论】:
-
调用代理时会传递哪些参数?如果您只传递了 2 个参数但委托需要 3 个怎么办?
-
我的意思是 any 数量的 any 参数:) 这就是我想知道的问题。
-
你能展示一些使用这种机制的代码吗?你想写什么样的代码来使用这个“多个可选参数”的东西?
-
恐怕没有太多选择:要么为您将要使用的每个参数组合定义单独的委托,要么定义将接受
Object实例数组的委托可以放你的参数。 -
@Sweeper 我更新了我的问题并添加了一些示例来阐明我想要实现的目标。