這是我的代碼:爲什麼我不能註冊作爲參數傳遞的事件?
using System.IO;
using System;
public class MyClass1{
event Action _myEvent;
public MyClass1(){
var m = new MyClass2(_myEvent);
_myEvent();
}
}
public class MyClass2{
public MyClass2(Action _event){
_event += MyFunction;
}
void MyFunction(){
Console.WriteLine("Hi");
}
}
class Program
{
static void Main()
{
var m = new MyClass1();
}
}
看來MyClass2不登記傳遞的參數_myEvent。即使MyClass2應該訂閱,調用_myEvent也會導致NullReferenceException。如果我讓_myEvent爲public並讓MyClass2直接註冊到它,而不使用傳遞給它的事件參數,它就可以正常工作。這是爲什麼?
可能重複[什麼是NullReferenceException,我該如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-doi-i-fix-它) –
你認爲我怎麼創造它?我從來沒有見過任何人「創造」一個事件。如果我將事件公開並直接註冊給它,而不使用參數,那麼一切正常。 –
你公開哪部分? – DavidG