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