【发布时间】:2011-03-03 03:14:14
【问题描述】:
我正在制作一个服务器库,其中数据包关联由枚举完成。
public enum ServerOperationCode : byte
{
LoginResponse = 0x00,
SelectionResponse = 0x01,
BlahBlahResponse = 0x02
}
public enum ClientOperationCode : byte
{
LoginRequest = 0x00,
SelectionRequest = 0x01,
BlahBlahRequest = 0x02
}
当您在自己的项目中工作时效果很好 - 您可以比较返回哪个枚举成员(即if (packet.OperationCode == ClientOperationCode.LoginRequest))。但是,由于这是一个类库,用户必须定义自己的枚举。
因此,我有两个枚举要添加为“抽象” - ServerOperationCode 和 ClientOperationCode。我知道在 C# 中实现抽象枚举是不可能的。我该怎么做?
【问题讨论】:
-
我不知道你在这里尝试什么。您希望您的代码是真正的 .NET 类型,以便您的客户端进行类型检查,但不希望客户端看到这些值?客户添加对您的库的引用无法解决的问题是什么?
-
我想我实际上是在尝试创建一个可以扩展静态对象的库,这是不可能的。例如,您可以在其中覆盖或实现“Server.Start”的库,但这不太可能。不过,我可以按事件进行。我会看看我能做什么,谢谢所有的答案,我会试试的。