我是enums的新手,并且阅读它最好在命名空间中的类之外定义枚举。
namespace MyNamespace
{
public static enum Index
{
First = 0,
Last = 1,
}
public class MainPage
{
private MyClass[] myClasses = new MyClass[2];
public MainPage()
{
myClasses[Index.First] = new MyClass();
myClasses[Index.Last] = new MyClass();
}
}
public class MyClass{}
}
我做错了什么?
编辑:
代码可以通过这种方式工作:
public MainPage()
{
myClasses[(int)Index.First] = new MyClass();
myClasses[(int)Index.Last] = new MyClass();
}
为了更好地理解我想要的东西,这里是我的"枚举"根据我的新知识:
namespace OnScreenKeyboard.Enumerations
{
namespace Key
{
public static class Keys
{
public const int Left = 0;
public const int Right = 1;
public const int Shift = 20;
public const int Backspace = 29;
public const int Numbers = 30;
public const int Country = 31;
public const int Space = 35;
public const int Enter = 39;
}
}
}
我可以这样做:
using OnScreenKeyboard.Enumerations.Key;
namespace OnScreenKeyboard
{
public MainPage()
{
InitializeComponent();
if (keyNumber == keys[Keys.Shift])
{
// Switch to Upper-Case Letters
}
}
}
我真的想使用枚举,但是如果我必须总是在代码中写这个丑陋的(int),我更喜欢更好的常量。
答案 0 :(得分:0)
enum
永远不会static
它只是存在(带有可选的访问修饰符)。
删除它,其余的代码看起来很好(如果通过枚举索引编码很奇怪,但它会起作用)。
来自C#5规范:
枚举类型是具有一组命名常量的不同值类型。 以下示例声明并使用名为Color with的枚举类型 三个常数值,红色,绿色和蓝色。
using System;
enum Color
{
Red,
Green,
Blue
}