【发布时间】:2016-02-24 23:18:47
【问题描述】:
我目前正在编写一个应用程序,在该应用程序中我反序列化相对较大的对象(其大小也可以增长,具体取决于用户添加到它们的内容)。我不想将它们全部加载到 RAM 中,因为当它们很多时,这可能会导致问题。
无论如何,如果有一个事件已经是我的问题,我想处理该类的加载实例引发的事件。
如何为仍然为 null 的对象订阅事件处理程序?
我想到了类似“如果有一个对象并且它引发了该事件并使用该方法处理它”。
这是一些示例代码,也是我能想到的唯一方法,尽管我已经认为它行不通了..
public class MyClassA
{
public event EventHandler PropertyChanged;
private string someProperty
public string SomeProperty
{
set
{
someProperty = value;
PropertyChanged?.Invoke(this, EventArgs.Empty);
}
}
public static MyClassA Load(string path)
{
/*...*/
}
}
public class MyClassB
{
public MyClassA InstanceOfA { get; private set; }
public MyClassB
{
//InstanceOfA.PropertyChanged += MyEventHandler; Not working, NullReference
}
// Handle InstanceOfA.PropertyChanged here...
public void MyEventHandler(object sender, EventArgs e)
{
/*...*/
}
}
【问题讨论】:
-
"我怎样才能为仍然为空的对象订阅事件处理程序?" - 你不能。
标签: c# event-handling null-pointer