据我了解,事件是类允许客户将事件的发生时应调用的方法委托给类的一种方法。事件发生时,将调用由其客户赋予它的委托。
但是如上面的以下代码所示,也可以仅通过委托(即不使用委托)来实现所述功能。
class Program
{
static void Main(string[] args)
{
ListWithChangedEvent lwce = new ListWithChangedEvent();
lwce.delegateVariable = DelegateTestMethod;
lwce.Add("test");
Console.ReadLine();
}
public static void DelegateTestMethod(object sender, object e)
{
}
}
public delegate void ChangedEventHandler(object sender, object e);
public class ListWithChangedEvent : System.Collections.ArrayList
{
public override int Add(object value)
{
int result = base.Add(value);
if (delegateVariable != null)
delegateVariable(this, "");
return result;
}
public ChangedEventHandler delegateVariable;
}
Run Code Online (Sandbox Code Playgroud)
因此,我想知道事件提供什么附加功能?
因此,我想知道事件提供什么附加功能?
与公开代表相比,活动提供了两个截然不同的优势: