2012-03-12 1 views
1

こんにちは私は以下のコードを持っています。それは、このエラーを示しているのはなぜデリゲートの使用中にエラーが表示される

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace myConsole 
{ 
    public delegate int showDelegate(); 
    public class addmultipleClass 
    { 
     public int addNumbers(int a, int b) 
     { 
      return (a + b); 
     } 
     public int multiplyNumbers(int a, int b) 
     { 
      return (a * b); 
     } 
    } 
    class Delegate 
    {  
     static void Main(string[] args) 
     { 
      addmultipleClass myObj = new addmultipleClass(); 
      showDelegate add = new showDelegate(myObj.addNumbers); 
     } 
    } 

} 

それはこのNo overload for 'addNumbers' matches delegate 'myConsole.showDelegate'

のようなエラーを示しています。私のコードで何が間違っている。 addNumbers()メソッドを参照するのは正しい方法ではありません。

なぜ私はここでデリゲートを使用する必要がありますか?クラスオブジェクトを使ってこれを実現できます。 as myObj.addNumbers(10,20); だから、代議員の必要性は何ですか? 私を助けてください。 ありがとうございます。

+2

変更showDelegateがaddNumbersのパラメータを一致させる:: 'パブリックデリゲートのintその答えのために、私はあなたが開始するために、はるかに詳細かつ正確な答えを他のスタックオーバーフローの記事で見てくださいshowDelegate(int a、int b); '代理人は、戻り値の型に加えて、パラメータの数と型に一致する必要があります。 – Jason

+1

なぜこれを答えにしないの?Jason?確かにそれに投票するだろう - 今は他のすべての答えはあなたのコメントからちょうど "借り"される;) – Carsten

+0

ジェイソンさんありがとう。答えとして投稿してください:) – Searcher

答えて

4

変更showDelegateはaddNumbersのパラメータと一致します

public delegate int showDelegate(int a, int b); 

参加者は、あなたの戻り値の型に加えて、パラメータの数と型が一致する必要があります。

質問の2番目の部分は基本的に「なぜ委任するのですか?」という質問です。

Delegates, Why? when & why to use delegates? The purpose of delegates

+0

@ Jason ..もう一度質問してください。 – Searcher

+0

@YSSS、更新しました。 – Jason

関連する問題