Как я могу объявить enum
, который имеет строки для значений?
private enum breakout {
page = "String1",
column = "String2",
pagenames = "String3",
row = "String4"
}
Как я могу объявить enum
, который имеет строки для значений?
private enum breakout {
page = "String1",
column = "String2",
pagenames = "String3",
row = "String4"
}
Как говорили другие, вы не можете.
Вы можете делать статические классы следующим образом:
internal static class Breakout {
public static readonly string page="String1";
public static readonly string column="String2";
public static readonly string pagenames="String3";
public static readonly string row="String4";
// Or you could initialize in static constructor
static Breakout() {
//row = string.Format("String{0}", 4);
}
}
или
internal static class Breakout {
public const string page="String1";
public const string column="String2";
public const string pagenames="String3";
public const string row="String4";
}
Используя readonly, вы можете фактически присвоить значение в статическом конструкторе. При использовании const он должен быть фиксированной строкой.
Или присвойте DescriptionAttribute значения перечисления, например здесь.
Нет, они не могут. Они ограничены числовыми значениями базового типа перечисления.
Однако вы можете получить подобное поведение с помощью вспомогательного метода
public static string GetStringVersion(breakout value) {
switch (value) {
case breakout.page: return "String1";
case breakout.column: return "String2";
case breakout.pagenames: return "String3";
case breakout.row: return "String4";
default: return "Bad enum value";
}
}
Нет, но вы можете получить значение перечисления в виде строки:
private enum Breakout {
page,
column,
pagenames,
row
}
Breakout b = Breakout.page;
String s = b.ToString(); // "page"
Перечисление по умолчанию имеет целое число в качестве базового типа, которое также указано здесь в msdn.
Может быть, Enum.GetName()/Enum.GetNames()
может быть вам полезен.
Вы можете создать словарь перечислений.
public enum OrderType
{
ASC,
DESC
}
public class MyClass
{
private Dictionary<OrderType, string> MyDictionary= new Dictionary<OrderType, string>()
{
{OrderType.ASC, ""},
{OrderType.DESC, ""},
};
}