我要做的是将char传递给方法并进行比较。
方法如下。
public static readonly int N = 1;
int facing = N;
public int charIntoInt(char face)
{
if (face == 'N')
{
facing = 1;
}
else if (face == 'E')
{
facing = 2;
}
else if (face == 'S')
{
facing = 3;
}
else if (face == 'W')
{
facing = 4;
}
return facing;
}
但每次我通过像E,S,W这样的任何字符时它只会返回1.如何解决这个问题?
答案 0 :(得分:1)
您的代码完美无缺。 但是,对于任何非匹配值,您已启动N = 1,它将返回' 1'。 即使你改变了像“'”这样的情况。 所以int i = charIntoInt(' s'); - 将永远返回' 1'。但是int i = charIntoInt(' S'); - 将返回2.
答案 1 :(得分:0)
另一个使用枚举来保存方向的变体:
enum Facing {
Unknown = 0,
N = 1,
E = 2,
S = 3,
W = 4
}
将char转换为枚举:
var character = 'N';
Facing facing = (Facing)Enum.Parse(typeof(Facing), character.ToString());
将枚举转换为int:
int numericFacing = (int) facing;
答案 2 :(得分:-3)
var facing = 0;
实例化,它只存在于当前正在使用它的块范围{}中。