以下是自定义事件参数的代码。我对这些的使用以及那些的作用感到困惑。我无法理解此属性public object AddedObject { get; private set; }
代码在这里:
public class ObjectAddedEventArgs : EventArgs
{
public ObjectAddedEventArgs(object addedObject)
{
AddedObject = addedObject;
}
public object AddedObject { get; private set; }
}
我无法理解添加对象的get和set属性的使用。请向我解释。
答案 0 :(得分:1)
AddedObject
属性称为“自动属性”,这意味着C#编译器将生成一个私有变量来保存属性的值。 “get”是允许您读取属性值的机制。 “set”是允许您设置属性值的机制,尽管在这种情况下,因为集合为private
,您无法设置该值。这转换为看起来大致如下的代码:
private object _AddedObject;
public object AddedObject
{
get { return this._AddedObject; }
private set { this._AddedObject = value; }
}
类本身(ObjectAddedEventArgs
类)用于向事件处理程序提供其他数据(AddedObject
值),可能会访问该数据并作为其中的一部分执行某些操作。这是对事件的回应。
答案 1 :(得分:0)
EventArgs是包含事件数据的类的基类。
...
此类不包含任何事件数据;它被没有的事件使用 在引发事件时将状态信息传递给事件处理程序。 如果 应用程序必须使用事件处理程序需要状态信息 从这个类派生一个类来保存数据。
话虽这么说,该类的原始开发人员打算处理事件,同时使对象AddedObject
可用于事件处理程序方法。请参阅上面的网站以获得一个很好的例子。
答案 2 :(得分:0)
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
}
你找到的弱点here。