代码:
enum EBtnSts
{
static
{
ePlayBtn = new EBtnSts("ePlayBtn", 1);
EBtnSts[] arrayOfEBtnSts = new EBtnSts[0];
arrayOfEBtnSts[0] = ePlayBtn;
}
}
答案 0 :(得分:5)
这是对static initializer
的疯狂使用,你真的应该避免使用它。首先,这肯定会引发ArrayIndexOutOfBounds
例外。
EBtnSts[] arrayOfEBtnSts = new EBtnSts[0]; // Creates an array of length 0
arrayOfEBtnSts[0] = ePlayBtn; // You can't access any index of 0 length array.
其次,该代码正在实现enum
作为普通类。避免。变量ePlayBtn
应该是枚举常量。 enum
中应该有2个字段,包含您在构造函数中传递的值。并且不要像这样调用构造函数。
此外,数组的创建完全没有意义。您可以使用values()
的{{1}}方法直接获取枚举常量数组。
enum
更好地实现为:
enum
您可以详细了解enum types here.