別のメソッドのパラメータとして変数のパラメータを持つメソッドを渡します。しかし、運がない。
私は何か行動を渡すことができます。しかし、方法。
助けが必要ですか?C#の:私はFooのメソッドへのランダムシグネチャを持つメソッドを渡すためにしようとしているので、ここで
class Bar
{
void M1(int a) { }
void M2(string a, int b) { }
Action<string, int, bool> A1 = (s, i, b) => {};
Action<int, float> A2 = (i, f) => {};
void Foo(Delegate f) {}
void Test()
{
Foo(A1);
Foo(A2);
// Foo(M1); // nope
// Foo(M2); // no way
}
}
PS。 Unity3dのMonoの下でこれを動作させようとしています。あなたはこのように、それを行うために、具体的なデリゲート型にキャストする必要が
これはそれだけで言語の一部だ、unity3dする特定またはモノではありません。 「M1」と「M2」は委任されていない「方法群」である。メソッドグループは互換性のあるデリゲート型に変換でき、コンパイラは(ActionやFuncのように)空中から1つを選択することを拒否します。 –
ええ、私は知っています。 C#3.0 +のユニークな機能に基づいてソリューションを提案した人のために、私はそれを述べました。 – dotsquid