これは、私が以前に尋ねたのと同じ質問です: メソッドが 2 種類のデータを引数として受け入れるようにする方法は?
しかし、現在の状況は大きく異なります。
これを取る:
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 として入力できるようにするのが最も簡単です。