using System;
namespace example
{
    
    public class Test
    {
        public delegate void delegateEnter();
        public event delegateEnter ZeroEntered;
        public  int _num1;
        public  int _num2;
        public Test(int n1,int n2)
        {
            _num1 = n1;
            _num2 = n2;
        }
        public void Disp()
        {
            if (_num2 == 0)
            {
                Console.WriteLine("除數不能為0");
                return;
            }
            ZeroEntered();
        }
    }    class TestEnter
    {
        public int num = 1;
        public int num2 = 2;
        static void Main()
        {
            Console.WriteLine("輸入數據中");
            
            Test obj  = new Test(1,2);
            obj.ZeroEntered += new Test.delegateEnter(TestEnter.answer);  ---->這裡報的錯,請問是什麼問題呢?
            obj.Disp();
        }
        public void answer()
        {
            Console.WriteLine("答案是{0}.", this.num / this.num2);
        }
    }
}

解决方案 »

  1.   

    是用來判斷如果NUM2為0就提示錯誤,如果NUM2不等於0就把NUM除NUM2的結果輸出,請問應該怎麼做呢? 
      

  2.   

     public   class   Test 
            { 
                    public   delegate   void   delegateEnter(); 
                    public   event   delegateEnter   ZeroEntered; 
                    public     int   _num1; 
                    public     int   _num2; 
                    public   Test(int   n1,int   n2) 
                    { 
                            _num1   =   n1; 
                            _num2   =   n2; 
                    } 
                    public   void   Disp() 
                    { 
                            if   (_num2   ==   0) 
                            { 
                                    Console.WriteLine("除數不能為0"); 
                                    return; 
                            } 
                            if(ZeroEntered != null)
                            ZeroEntered(); 
                    } 
            } 
      

  3.   


    public       class       Test   
                    {   
                                    public       delegate       void       delegateEnter();   
                                    public       event       delegateEnter       ZeroEntered;   
                                    public           int       _num1;   
                                    public           int       _num2;   
                                    public       Test(int       n1,int       n2)   
                                    {   
                                                    _num1       =       n1;   
                                                    _num2       =       n2;   
                                    }   
                                    public       void       Disp()   
                                    {   
                                                    if       (_num2       ==       0)   
                                                    {   
                                                                    Console.WriteLine("除數不能為0");   
                                                                    return;   
                                                    }   
                                                    if(ZeroEntered   !=   null) //注意这里
                                                    ZeroEntered();   
                                    }   
                    }   
      

  4.   

               public   class   Test 
            { 
                    public   delegate   void   delegateEnter(); 
                    public   event   delegateEnter   ZeroEntered; 
                    public     int   _num1; 
                    public     int   _num2; 
                    public   Test(int   n1,int   n2) 
                    { 
                            _num1   =   n1; 
                            _num2   =   n2; 
                    } 
                    public   void   Disp() 
                    { 
                            if   (_num2   ==   0) 
                            { 
                                    Console.WriteLine("除數不能為0"); 
                                    return; 
                            } 
                            ZeroEntered(); 
                    } 
            }         class   TestEnter 
            { 
                    public   int   num   =   1; 
                    public   int   num2   =   2; 
                    static   void   Main() 
                    { 
                            Console.WriteLine("輸入數據中"); 
                            
                            Test   obj     =   new   Test(1,2);
                            obj.ZeroEntered += new Test.delegateEnter(obj.Disp);
                            //obj.Disp(); 
                    } 
                    public   void   answer() 
                    { 
                            Console.WriteLine("答案是{0}.",   this.num   /   this.num2); 
                    } 
            } 这样就不会报错,不过好像不是这样用的
      

  5.   

    楼上的一群猪猪!!!
    class   TestEnter
    {
      public   int   num   =   1;
      public   int   num2   =   2;
      static   void   Main()
      {
        Console.WriteLine("輸入數據中");    Test   obj     =   new   Test(1,2);
        obj.ZeroEntered   +=   new   Test.delegateEnter(TestEnter.answer);     ----> 這裡報的錯,請問是什麼問題呢?
        obj.Disp();
      }
      public   void   answer()
      {
        Console.WriteLine("答案是{0}.",   this.num   /   this.num2);
      }

    注意上段代码中的红色部分!!!
    非静态方法怎么能在静态方法中调用呢???
      

  6.   

    正确的为[code=C#]
    public delegate void delegateEnter (int num1, int num2);public class Test
    {
      public event delegateEnter ZeroEntered;
      public int _num1;
      public int _num2;
      public Test (int n1, int n2)
      {
        _num1 = n1;
        _num2 = n2;
      }
      public void Disp ()
      {
        if (_num2 == 0)
        {
          Console.WriteLine("除數不能為0");
          return;
        }
        ZeroEntered(_num1, _num2);
      }
    }class TestEnter
    {
      static void Main()
      {
        Console.WriteLine("輸入數據中");    Test obj = new Test(1,2);
        obj.ZeroEntered += new delegateEnter(answer);
        obj.Disp();
      }  public static void answer(int num1, int num2)
      {
        Console.WriteLine("答案是{0}.", num1 / num2);
      }