我“需要”一种很酷的写作方式(x == 0?1:0)

时间:2016-09-06 02:35:07

标签: c# bit-shift

所以我有一段代码,我有一个01的变量,我希望得到相反的结果。实际上它是enum,我的确切代码是

_Player other = player == _Player.FIRST ? _Player.SECOND : _Player.FIRST;

但我想知道是否有一种奇特的移位方式来做到这一点。

2 个答案:

答案 0 :(得分:0)

您应该使用extension method for enum type:一种很酷的且可读方式!

enum Player
{
    FIRST,
    SECOND
}

static class PlayerMethods
{

    public static String swap(this Player s)
    {
        switch (s1)
        {
            case Player.FIRST:
                return Player.SECOND;
            case Player.SECOND:
                return Player.FIRST;            
        }
    }
}

并使用它:

class Program
{


    static void Main(string[] args)
    {
        Player one = Player.FIRST;
        Player other = one.Swap();
    }
} 

答案 1 :(得分:0)

一种很酷的方式,就是使用

x = !x

当x是布尔值