【C#枚举基础知识求解】
C# code
public enum directions
{
U,D,L,R
};
这个枚举为什么要加“;” 不加可以吗
C# code
public directions dir;
public virtual void Adjustdrection()
{
switch (dir)
{
case directions.U:
this.Y -= Speed;
break;
case directions.D:
this.Y += Speed;
break;
case directions.R:
this.X += Speed;
break;
case directions.L:
this.X -= Speed;
break;
}
}
这种判断 是什么意思 得怎么理解 判断directions定义的变量等于directions.U 这是怎么个比对法
枚举定义的变量 和枚举本身的变量有什么区别
------解决方案--------------------枚举型的规则
------解决方案--------------------http://msdn.microsoft.com/zh-cn/library/sbbt4032(v=vs.80).aspx
class Program
{
enum directions { U,D,L,R };
static void Main(string[] args)
{
directions d=directions.R;
Console.WriteLine(Adjustdrection(d, 100, 100));
}
static int Adjustdrection(directions dir, int X, int Y)
{
switch (dir)
{
case directions.U:
Y -= 50;
return Y;
case directions.D:
Y += 50;
return Y;
case directions.R:
X += 50;
return X;
case directions.L:
X -= 50;
return X;
default:
return 0;
}
}
}
枚举定义的变量你給定值後自然會等於枚举本身的变量
------解决方案--------------------不加;是可以的。
加上也没事。
------解决方案--------------------directions d=directions.R;
Console.WriteLine(Adjustdrection(d, 100, 100));
directions dd=directions.U;
Console.WriteLine(Adjustdrection(dd, 100, 100));
dd!=d當然你要設dd==d也ok。
directions d=directions.R;
directions dd=directions.R;
------解决方案--------------------你暂时可以把U,D,L,R看作是4个static readonly int 的字段
switch-case 就像是单刀多路开关
------解决方案--------------------