使用枚举值进行比较

时间:2015-04-09 15:12:45

标签: c# enums comparison

我有一个enums设置的课程如下:

[FlagsAttribute]
public enum firstByte : uint
{
    Battery = 4,           
    Reverse = 4
};

[StructLayout(LayoutKind.Sequential)]
public class class1: PropertyChangedBase
{
    public firstByte FirstByte;
}

从另一个班级我想使用比较:

class class2
{    
    uint test = 1;

    if (class1.FirstByte.Battery >= test) {...}
}

但我无法真正达到BatteryThis question非常相似,但它并不完全相同,因为他的enum没有像我一样以面向对象的方式使用。我也使用了this question来寻求帮助,但这让我感到困惑,因为他将enum属性设置为等于enum类型的项目。我该怎么做:class1.FirstByte.Battery

1 个答案:

答案 0 :(得分:0)

您可以在Class2上定义使用FirstByte属性的方法。否则,FirstByte必须标记为static

[FlagsAttribute]
public enum FirstByte : uint
{
    Battery = 4,           
    Reverse = 4
}

使用带参数的方法:

public class Class1
{
    public FirstByte FirstByte { get; set; }
}

public class Class2
{    
    public bool SomeMethod(Class1 class1)
    {
        uint test = 1;

        return class1.FirstByte >= (FirstByte) test;
    }
}

FirstByte必须为全局时使用静态字段:

public class Class1
{
    public static FirstByte FirstByte { get; set; }
}

public class Class2
{    
    public bool SomeMethod()
    {
        uint test = 1;

        return Class1.FirstByte >= (FirstByte) test;
    }
}