可能重复:
How can I make an “abstract” enum in a .NET class library?
所以,这是我的项目。
我有一个网络框架,它有一个名为命令的枚举。这基本上告诉系统刚刚进入的数据包是CONNECT,CHAT,JOIN等。作为未来的一步,我想允许插件使用这个'框架',它可以提供额外的命令类型。我知道你不能在后续的插件中为现有的枚举添加值,那么在上面做我想做的事情的正确方法是什么?一类?只是命令的整数字段,还有一系列const int,比如CONNECT = 1,JOIN = 2等?
答案 0 :(得分:1)
您应该将主要消息类型之一设置为plugin
,以便您可以将消息委托给插件本身,而不是尝试自己处理这些当前未知的数据包。此外,每个插件消息都应包含一个标识符,用于指定哪个插件应该处理它。
通常,您要使插件系统尽可能模块化,因此您不必担心它会如何干扰您的代码。
答案 1 :(得分:0)
我认为最好的方法是创建一个带常量的类
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;
}