у меня есть проблемы с перечислениемC# enum в интерфейсе/базовом классе?
мне нужно сделать перечисление в базовом классе или интерфейсе (но пустой)
class Base
{
public enum Test;
// ???
}
и после того, как сделать diffrent перечислений в некоторых родительских классов
class Parent1
{
public enum Test {A, B, C};
}
class Parent2
{
public enum Test {J, H, K};
}
и теперь у меня следующий класс с методом, когда мне нужно использовать перечисление
class Test<T>
{
public void Foo(Test enum)
{
int value = (int) enum;
// ...
}
}
Это какой-то способ сделать что-то подобное?
Если не я должен использовать статический Интс в каждом классе ...
class Parent1
{
public static int A = 0;
public static int B = 5;
public static int C = 7;
}
class Parent2
{
public static int J = 1;
public static int H = 3;
public static int K = 6;
}
class Test<T>
{
public void Foo(int enum)
{
int value = enum;
// ...
}
}
I't плохо выглядит в коде ... в некоторых классах я должен использовать ~ 20 + переменные
Возможно, было бы неплохо пересмотреть ваши предположения - зачем вам это нужно? Попробуйте перефразировать вопрос, чтобы включить то, что вы на самом деле пытаетесь сделать, вместо того, чтобы сосредоточиться на том, как вы приближаетесь к проблеме. :) – Rytmis
Что вы хотите использовать, на самом деле? Наличие разных реализаций одного и того же перечисления, по-видимому, противоположно тому, что предназначено для перечисления ... – Guffa
@Groo: нет, это добавляет значения в перечисление, это имеет абстрактное перечисление, которое имеет объектные значения, но реализует согласованный интерфейс, поэтому его члены могут быть переданы. Ответ Марка - лучшее, что я видел. –