比较一个角色

时间:2016-02-18 13:54:30

标签: c#

我要做的是将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.如何解决这个问题?

3 个答案:

答案 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;

实例化,它只存在于当前正在使用它的块范围{}中。