这与我前段时间提出的问题有些相同: 如何让方法接受两种类型的数据作为参数?
然而,目前的情况不同......很多。
拿着这个:
public FormResourceSelector(Dictionary<string, Effect> resourceList, string type)
好吧,没什么不好的。现在我尝试运行它:
FormResourceSelector frs = new FormResourceSelector(AreaEffect.EFFECTS, "Area effect");
FormResourceSelector frs2 = new FormResourceSelector(DistanceEffect.EFFECTS, "Distance effect");
AreaEffect 和 DistanceEffect(自定义类)都派生自 Effect。
public class AreaEffect : Effect
{
public static Dictionary<string, AreaEffect> EFFECTS = new Dictionary<string, AreaEffect>();
...
}
由于某种原因,在创建新的 FormResourceSelector 实例时出现以下错误:
Argument 1: cannot convert from 'System.Collections.Generic.Dictionary<string,SCreator.AreaEffect>' to 'System.Collections.Generic.Dictionary<string,SCreator.Effect>'
在:
new FormResourceSelector(AreaEffect.EFFECTS, "Area effect");
我怀疑字典是一种骚扰,但我真的不知道如何解决这个问题。
编辑:最简单的方法是在我给出的第一个代码片段中允许将 Dictionary 和 Dictionary 作为 resourceList 输入。