这是我的代码:为什么我不能注册作为参数传递的事件?
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