基本上:
public delegate void RecvCommandHandler (ChatApplication sender, byte[] content);
event RecvCommandHandler[] commands = new RecvCommandHandler[255];
我想为每个命令编号激活不同的方法/功能,但我真的不确定语法。我应该怎么做?
我想我会为这个问题选择一组代表,但这个问题仍然很有趣。
最佳答案
您可以创建一个带有运算符重载的类数组来模拟您感兴趣的行为...
public delegate void EventDelegate(EventData kEvent);
public class EventElement
{
protected event EventDelegate eventdelegate;
public void Dispatch(EventData kEvent)
{
if (eventdelegate != null)
{
eventdelegate(kEvent);
}
}
public static EventElement operator +(EventElement kElement, EventDelegate kDelegate)
{
kElement.eventdelegate += kDelegate;
return kElement;
}
public static EventElement operator -(EventElement kElement, EventDelegate kDelegate)
{
kElement.eventdelegate -= kDelegate;
return kElement;
}
}
public EventElement[] commands = new EventElement[255];
commands[100] += OnWhatever;
commands[100].Dispatch(new EventData());
commands[100] -= OnWhatever;
关于c# - C#中的事件数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/987050/