拥有以下代码,它会报告不一致的可访问性,但我不明白为什么。这取决于程序类是否公开:
enum Test
{A,B}
public class Program //when I remove public, it works
{
public Test a = Test.A;
static void Main(string[] args)
{
}
}
答案 0 :(得分:4)
您尚未在枚举声明中添加访问修饰符,然后将其公开为public
类的Program
字段。如果您未声明访问修饰符,则为private
。
public enum Test { A, B }
答案 1 :(得分:2)
您无法公开该属性,因为枚举是私有的。如果有人使用您的程序并且编译器告诉您有关公共属性,那么公共属性将在外部公开。
答案 2 :(得分:2)
因为您没有在枚举上明确声明访问修饰符(即public
,protected
,internal
),所以它采用默认值(internal
用于课程和枚举)。然后,您通过public
类的Program
字段公开该枚举,这是不允许的,因为枚举在其程序集之外是不可见的。
您需要将枚举声明为public
,或将字段的访问修饰符更改为internal
或private
。
当您从public
类中删除Program
时它会起作用,因为它会将Program
类更改为内部 - 与枚举相同。这很好,因为它们都没有公开曝光。
答案 3 :(得分:1)
您可能需要将枚举设置为公开