のC#のキャストは、あなたは、このようなC#非整数列挙型と
public enum Animals
{
Dog = 0, Cat = 1,
}
としてあなたの列挙型の要素に値を割り当てることができます、あなたはとても似すぎて、そこからキャストすることができます。
public void demo()
{
int dog = (int)Animals.Dog;
Animals cat = (Animals)(dog++);
}
が、C#はまた、あなたがキャストでバックとアウトベクトル2を得ることができませんしかし、あなたはこの
public enum Animals
{
Dog = Vector2.One, Cat = Vector2.Zero,
}
ようなことを行うことができます。
Vector2 dog = (Vector2)Animals.Dog; //this fails
この問題は解決できますか? * Vector2
はクラスオブジェクトであり、Vector2.One
とVector2.Zero
はそのような静的宣言です。これはDogがメモリ参照に割り当てられていることを意味します。整数型へVector2
からの暗黙的なキャストがある場合
このコードはコンパイルされません - 'Vector2'はint型に変換可能でなければなりません(または、整数型のみであるenumの他のいずれかの型を指定した場合) – BrokenGlass
Vector2はクラスではありません。値の型(あなた自身の実装ではなく、XNA Vector2を使用していると仮定します)。 – smelch
@BrokenGlassええ、私のKreskin帽子(http://www.amazingkreskin.com/)もクリーナーで出ています! ;-) –