gpt4 book ai didi

c# - 响应网络代码调用函数

转载 作者:行者123 更新时间:2023-11-30 15:31:11 27 4
gpt4 key购买 nike

我想知道,在尝试处理从网络源接收的代码时,如何避免使用巨大的 switch 语句?该消息带有一个操作码 (int),根据上述操作码调用的函数(不是我的设计,我无法影响它)。

我需要调用一个函数来响应操作码,但我不一定要使用 switch 语句将操作码硬编码到函数映射,因为如果网络架构更改。

tldr 我怎样才能将一个 int 绑定(bind)到一个函数——注意函数可能分布在整个解决方案中(每条消息可能需要不同的状态信息/可能属于不同的类)现在我已经用属性标记了函数,但是有更好的方法吗?

最佳答案

使用 Dictionary 将 int 映射到处理程序:

var handlers=new Dictionary<int,Action<NetworkData>>();
handlers[Opcode.Foo]=HandleFoo;
handlers[Opcode.Bar]=HandleBar;

void HandleFoo(NetworkData data)
{
// Whatever
}

void HandleBar(NetworkData data)
{
// Whatever
}

关于c# - 响应网络代码调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21091323/

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