Я делаю серверную библиотеку, в которой ассоциация пакетов выполняется перечислением.Как я могу сделать «абстрактное» перечисление в библиотеке классов .NET?
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», но это не совсем возможно. Я мог бы пойти по событиям. Я посмотрю, что я могу сделать, спасибо за все ответы, я попробую их. – Lazlo