C#允許你賦值給你的枚舉元素,如C#非整數枚舉和鑄造
public enum Animals
{
Dog = 0, Cat = 1,
}
,你可以投得,並從他們身上,像這樣。
public void demo()
{
int dog = (int)Animals.Dog;
Animals cat = (Animals)(dog++);
}
但是C#也可以讓你喜歡這款
public enum Animals
{
Dog = Vector2.One, Cat = Vector2.Zero,
}
事情但是你不能得到的Vector2回進出同一個演員。如
Vector2 dog = (Vector2)Animals.Dog; //this fails
該問題是否可以解決? *注意Vector2
是一個類對象,Vector2.One
和Vector2.Zero
是這樣的靜態聲明。這意味着Dog被分配給內存引用。
此代碼不會編譯 - 「Vector2」必須可轉換爲int(或者,如果您指定了任何其他允許的枚舉類型,這些類型只是整型) – BrokenGlass
Vector2不是類,它是一個結構,一個值類型(假設你正在使用XNA Vector2而不是你自己的實現)。 – smelch
@BrokenGlass嗯,我的Kreskin帽子(http://www.amazingkreskin.com/)也在清潔工! ;-) –