var onlyOnline = (cmd.Flags & (int)CmdEntityFlags.SendToOfflineClient) < 0;其中 cmd.Flages  与 CmdEntityFlags.SendToOfflineClient  都是枚举中的具体值。
但是我看不明白上句到底是怎么意思?  怎么还有个 < 0  呢 ?

解决方案 »

  1.   

    就是赋给onlyOnline true或false
      

  2.   

    枚举有对应的值呢, 示例:
            public enum TimeofDay:uint
            {
                Morning,
                Afternoon,
                Evening
             }   
        Morning的值为0,Afternoon的值为1,Evening的值为2。
    等价于
    public enum TimeofDay:uint
            {
                Morning=0,
                Afternoon=1,
                Evening=2
             }
      

  3.   

    通常用于检测状态,枚举值是int类型,&操作会判断cmd.Flages 与 CmdEntityFlags.SendToOfflineClient 必须有相同的状态值
      

  4.   

    cmd.Flags & (int)CmdEntityFlags.SendToOfflineClient
    是进行位运算吧<0表示最高位是1也就是说,这两个Flag的最高位如果都是1就返回true
      

  5.   

    枚举本质是数值,强制转换为int再与运算后可能为负数...onlyOnline是个bool...
      

  6.   

    cmd.Flags & (int)CmdEntityFlags.SendToOfflineClient这个结果是个intcmd.Flags & (int)CmdEntityFlags.SendToOfflineClient < 0就表示结果是个负数啊,也就是最高位是1整个语句就表示如果cmd.Flags CmdEntityFlags.SendToOfflineClient的最高位都是1
    就赋值为true
    否则就是false你可以去查看那个枚举的定义,看看最高位表示什么
      

  7.   

    将CmdEntityFlags.SendToOfflineClient转为int,然后与cmd.Flags 进行与运算,判断运算结果是否<0
    枚举类型根据定义时的情况,可以转换为int,byte,sbyte等等
      

  8.   

    那就是定义一个布尔值吧
    true or false