Мне было любопытно узнать, что происходит между объявлениями делегата
public delegate void KeyAddedHandler(string addedKey, string addedValue);
с сопутствующим событием в вашем классе, например,
class Foo
{
public event KeyAddedHandler KeyAdded;
// Other things.
}
по сравнению с использованием обобщенного c EventHandler<T>
и создание класса, который наследуется от EventArgs для передачи информации, как таковой
using System;
public class KeyValueEventArgs : EventArgs
{
public string addedKey { get; private set; }
public string addedValue { get; private set; }
public KeyValueEventArgs(string key, string value)
{
addedKey = key;
addedValue = value;
}
}
class Foo
{
public event EventHandler<KeyValueEventArgs> KeyAdded;
// KeyAdded += (s, e) => Console.WriteLine($"Added new key: {e.addedKey}.");
}
Спасибо!