Предположим, что у меня есть два перечислений следующие:Могу ли я создать интерфейс для перечислений в C#
namespace A
{
public enum AE
{
AE_0,
AE_1
}
}
namespace B
{
public enum BE
{
BE_0,
BE_1
}
}
Я хотел бы использовать эти два перечислений выглядит как один, так что, в функции, мы можем использовать как F (AE) и F (BE) без определения двух функций.
Насколько я знаю, мы можем создать интерфейс для двух разных классов, чтобы при назначении интерфейса в качестве параметра эти два класса могли использоваться.
Могу ли я сделать то же самое для перечисления?
спасибо.
Edit: Я поднимаю эту проблему, потому что у меня уже есть перечислимую А в пространстве имен А. Теперь я хотел бы добавить перечислимую B в пространстве имен B, не касаясь ничего в пространстве имен А. Однако, в пространстве имен А, у меня уже есть функция F с перечислением A в качестве параметра. Теперь я хотел бы использовать функцию F с enum B в пространстве имен B. Я получил ошибку, потому что перечисление A и перечисление B не могут преобразовываться друг в друга. Спасибо.
Вы либо хотите создать функцию, которая принимает общий тип, либо просто воспользоваться тем фактом, что перечисления являются просто 'int' по умолчанию. В любом случае, интерфейс здесь не нужен. –
Согласитесь с Lynn, используя generics, может просто работать здесь и добавить ограничение 'where T: struct'. Например: 'void F (T input), где T: struct {...}' –
DavidG
Если перечисления взаимозаменяемы, должны ли они быть действительно переписными? – Rob