自定义事件参数有什么用
本文关键字:什么 参数 事件 自定义 | 更新日期: 2023-09-27 18:32:12
这是自定义事件参数的代码。我对它们的使用以及它们的作用感到困惑。我无法理解此属性public object AddedObject { get; private set; }
代码在这里:
public class ObjectAddedEventArgs : EventArgs
{
public ObjectAddedEventArgs(object addedObject)
{
AddedObject = addedObject;
}
public object AddedObject { get; private set; }
}
我无法理解添加对象的 get 和 set 属性的使用。请向我解释一下。
AddedObject
属性是所谓的"auto 属性",它仅表示 C# 编译器将生成一个私有变量来保存属性的值。"get"是允许您读取属性值的机制。"set"是允许您设置属性值的机制,尽管在这种情况下,由于集合是private
因此您无法设置值。这转换为大致如下所示的代码:
private object _AddedObject;
public object AddedObject
{
get { return this._AddedObject; }
private set { this._AddedObject = value; }
}
类本身(ObjectAddedEventArgs
类)用于向事件处理程序提供附加数据(AddedObject
值),事件处理程序可能将访问该数据并对其进行处理,作为对事件的响应的一部分。
根据Microsoft的文档:
EventArgs 是包含事件数据的类的基类。
....
此类不包含任何事件数据;它由不包含的事件使用 引发事件时将状态信息传递给事件处理程序。如果 事件处理程序需要状态信息,应用程序必须 从此类派生一个类来保存数据。
话虽如此,该类的原始开发人员打算处理事件,同时使对象AddedObject
可供事件处理程序方法使用。请参阅上面的网站,了解一个很好的例子。
当你
像这样声明你的事件时是件好事
event EventHandler<ObjectAddedEventArgs> MyObjectAddedEvent;
您可以轻松地以弱方式订阅它
myObjectInstance.MyObjectAddedEvent += new EventHandler<ObjectAddedEventArgs>(MyObjectAddedEventMethod).MakeWeak(eh => d.MyObjectAddedEvent -= eh);
private void MyObjectAddedEventMethod(object sender, ObjectAddedEventArgseventargs)
{
//do something with the event args
}
你在这里找到的弱东西。