C#では、デリゲートをゼロ、1つ、または複数のパラメータを受け入れるように宣言できますか? dynamic
のキーワードは役に立ちますゼロ、1つ以上のパラメータを受け入れるデリゲート
つまり、私はこのデリゲートに追加する関数がたくさんある場合、パラメータの数と型に基づいてこれらの関数を呼び出すことができますデリゲートが呼び出されますか? MSDNのドキュメントから
C#では、デリゲートをゼロ、1つ、または複数のパラメータを受け入れるように宣言できますか? dynamic
のキーワードは役に立ちますゼロ、1つ以上のパラメータを受け入れるデリゲート
つまり、私はこのデリゲートに追加する関数がたくさんある場合、パラメータの数と型に基づいてこれらの関数を呼び出すことができますデリゲートが呼び出されますか? MSDNのドキュメントから
:
戻り値の型とパラメータで構成デリゲートの署名を、一致した任意の方法は、デリゲートに割り当てることができます。
動的委任パラメータの概念は、この定義と競合します。 複数の署名を受け入れるデリゲートを持つことはできません。
さまざまなパラメータの数、型、戻り値の型(理解した限り)で関数呼び出しチェーンを一般化する方法は不明です。間違いなくdelegate
はあなたの友人ではありません。あなたがする必要がどのような
は、芋、次のとおりです。
はあなたが必要な機能を集約し、リスト、キューまたは任意の上にそれらを反復呼び出すことができますカスタムクラスを定義します。 delegates
を使用する場合は、の単一代理人を定義する必要があります。タイプの関数です。これは実際にはdelegates
の良さです。型セーフな関数ポインタです。
単一のデリゲートで複数の関数を組み合わせるという考えは、すべてが呼び出されるということです。なぜあなたはここで別の代表者を使いたくないのですか? – hvd
一般的には不可能です。あなたの2つの機能の署名が同じ場合はどうなりますか?あなたは機能を異なって識別する必要があります。しかし、あなたがその問題を* one * delegateで解決しようとしているからです。 – Irfy
これは代理人のためのものではありません。 –