2012-03-18 19 views
0

C#では、デリゲートをゼロ、1つ、または複数のパラメータを受け入れるように宣言できますか? dynamicのキーワードは役に立ちますゼロ、1つ以上のパラメータを受け入れるデリゲート

つまり、私はこのデリゲートに追加する関数がたくさんある場合、パラメータの数と型に基づいてこれらの関数を呼び出すことができますデリゲートが呼び出されますか? MSDNのドキュメントから

+2

単一のデリゲートで複数の関数を組み合わせるという考えは、すべてが呼び出されるということです。なぜあなたはここで別の代表者を使いたくないのですか? – hvd

+1

一般的には不可能です。あなたの2つの機能の署名が同じ場合はどうなりますか?あなたは機能を異なって識別する必要があります。しかし、あなたがその問題を* one * delegateで解決しようとしているからです。 – Irfy

+4

これは代理人のためのものではありません。 –

答えて

3

戻り値の型とパラメータで構成デリゲートの署名を、一致した任意の方法は、デリゲートに割り当てることができます。

動的委任パラメータの概念は、この定義と競合します。 複数の署名を受け入れるデリゲートを持つことはできません。

0

さまざまなパラメータの数、型、戻り値の型(理解した限り)で関数呼び出しチェーンを一般化する方法は不明です。間違いなくdelegateはあなたの友人ではありません。あなたがする必要がどのような

は、芋、次のとおりです。

はあなたが必要な機能を集約し、リスト、キューまたは任意の上にそれらを反復呼び出すことができますカスタムクラスを定義します。 delegatesを使用する場合は、の単一代理人を定義する必要があります。タイプの関数です。これは実際にはdelegatesの良さです。型セーフな関数ポインタです。

関連する問題