我是c#開發新手。我只是想研究委託功能。根據我讀過的有關代表的文章和筆記,我嘗試編寫一個示例代碼來實現代理,這些代碼基於我從這些筆記和文章中瞭解的內容。代表事件問題
但我同時運行樣品
得到一個錯誤「對象引用不設置到對象的實例。」
這裏有什麼問題?或者我是否以正確的方式實施了代表?或者我的代理概念是錯誤的?
請幫忙。提前致謝。
我在下面發佈我的代碼。
default.aspx.cs
public partial class _Default : System.Web.UI.Page
{
TestClass myObject = new TestClass();
protected void Page_Load(object sender, EventArgs e)
{
myObject.MyDelegateEvent += new TestClass.MyDelegate(myObject_MyDelegateEvent);
}
void myObject_MyDelegateEvent(object sender, EventArgs e)
{
Console.WriteLine("Delegate event called");
}
}
的TestClass
public class TestClass
{
public delegate void MyDelegate(object sender, EventArgs e);
public event MyDelegate MyDelegateEvent;
public TestClass()
{
MyDelegateEvent(this, null); // Here getting error "Object reference not set to an instance of an object."
}
}
您無法在構造函數中觸發事件。沒有代碼可能訂閱它們的事件處理程序,直到*構建對象之後。這是一個雞和雞蛋的問題。 – 2012-01-27 13:00:10