可能重复:
如何在 .NET 类库中创建“抽象”枚举?
所以,这是我的项目。
我有一个网络框架,它有一个名为命令的枚举。这基本上告诉系统刚刚进来的数据包是否是 CONNECT、CHAT、JOIN 等。作为未来的步骤,我希望允许插件使用这个可以提供额外命令类型的“框架”。我知道您不能在后续插件中向现有枚举添加值,那么在上面做我想做的事情的正确方法是什么?一类?只是一个用于命令的整数字段,以及一系列 const int,如 CONNECT = 1、JOIN = 2 等?
可能重复:
如何在 .NET 类库中创建“抽象”枚举?
所以,这是我的项目。
我有一个网络框架,它有一个名为命令的枚举。这基本上告诉系统刚刚进来的数据包是否是 CONNECT、CHAT、JOIN 等。作为未来的步骤,我希望允许插件使用这个可以提供额外命令类型的“框架”。我知道您不能在后续插件中向现有枚举添加值,那么在上面做我想做的事情的正确方法是什么?一类?只是一个用于命令的整数字段,以及一系列 const int,如 CONNECT = 1、JOIN = 2 等?
您可能应该将主要消息类型之一设置为plugin
,这样您就可以将消息处理委托给插件本身,而不是尝试自己处理这些当前未知的数据包。此外,每个插件消息都应该包含一个标识符,该标识符指定哪个插件应该处理它。
通常,您要使插件系统尽可能模块化,这样您就不必担心它会如何干扰您的代码。
我认为最好的方法是创建一个带有常量的类
public class Commands
{
public const int CONNECT = 1;
public const int CHAT = 2;
public const int JOIN = 3;
}
当用户想要添加新的命令类型时,他需要覆盖这个类
public class PluginCommands: Commands
{
public const int AddBuddy = 4;
public const int Disconnect = 5;
}