gpt4 book ai didi

c# - C#中的事件数组?

转载 作者:太空狗 更新时间:2023-10-29 19:53:31 24 4
gpt4 key购买 nike

基本上:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com