有没有办法如何通过属性返回完整的枚举?以下是我想要做的例子:
// MyEnums.cs
public enum Languages
{
cs = 0,
pl = 1,
en = 2,
de = 3,
}
// General.cs
public static MyEnums.Languages Languages
{
get
{
return MyEnums.Languages;
}
}
答案 0 :(得分:2)
enum
是一种类型,我想你实际上想要得到所有枚举值。你可以使用这个包装器:
public static class EnumWrapper<T> where T : struct
{
public static T[] Values
{
get
{
Type ofT = typeof(T);
if (!ofT.IsEnum) throw new ArgumentException("Must be enum type");
return Enum.GetValues(ofT).Cast<T>().ToArray();
}
}
}
// ...
Languages[] languages = EnumWrapper<Languages>.Values;
答案 1 :(得分:0)
如果要返回枚举中定义的所有可用值,可以使用
Enum.GetValues(typeof(MyEnums.Languages));
并修改您的方法,以便返回MyEnums.Languages[]
(或List<MyEnums.Languages>
,这对于调用代码来说总是更容易管理)
答案 2 :(得分:0)
要获取枚举中的所有值,请使用Enum.GetValues
。您可能还想将其强制转换为正确的类型:
Languages[] languages = Enum.GetValues(typeof(Languages)).Cast<Languages>().ToArray();
// languages is an array containing { Languages.cs, Languages.pl, Languages.en, Languages.de }