-8
キーが文字列であり値がメソッドであり、何かを返すことも何も返さない(void)ため、すべて同じ型ではない辞書を作成する必要があります。どのようにC#でそれを行うには?C#で値としてメソッドを持つ辞書を作成する
キーが文字列であり値がメソッドであり、何かを返すことも何も返さない(void)ため、すべて同じ型ではない辞書を作成する必要があります。どのようにC#でそれを行うには?C#で値としてメソッドを持つ辞書を作成する
あなたのデザインは強く型付けされた言語で欠陥があるようです。私はjavascriptでこれはおそらく一般的な使用法ですが、C#では知っている。
値を返すことはできません。すべての方法で値を返す必要があります。
class ResultClass
{
}
class OtherClass
{
}
class MethodHolder
{
private readonly Dictionary<string, Func<object[], object>> Dict;
public MethodHolder()
{
Dict = new Dictionary<string, Func<object[], object>>();
Dict.Add("MethodA", (x) => MethodA(x));
Dict.Add("MethodB", (x) => MethodB(x));
Dict.Add("MethodC", (x) => MethodC(x));
}
public object MethodA(object[] param)
{
//some code
return new ResultClass();
}
public object MethodB(object[] param)
{
//this is your void example
return null;
}
public object MethodC(object[] param)
{
//some more code
return new OtherClass();
}
public void HowToUse()
{
var method = Dict["MethodA"];
method.Invoke(new object[] { });
}
}
このコードは、あなたのデザインを再加工する必要があります。
あなたが既に試したことを私たちに示す必要があります。 – FCin
辞書にFuncを保存するだけでもいいですか? – Max
聞こえません。辞書の値の型はすべて同じでなければなりません。 –