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);
}
}
}
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);
}
}
}
{
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();
}
}
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();
}
}
{
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);
}
} 这样就不会报错,不过好像不是这样用的
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);
}
}
注意上段代码中的红色部分!!!
非静态方法怎么能在静态方法中调用呢???
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);
}
}