Я делаю серверную библиотеку, в которой ассоциация пакетов выполняется перечислением.
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)
). Однако, поскольку это библиотека классов, пользователь должен будет определить собственное перечисление.
Поэтому у меня есть два перечисления, которые нужно добавить как "abstract" - ServerOperationCode и ClientOperationCode. Я знаю, что невозможно реализовать абстрактные перечисления в С#. Как я буду делать это?