使用枚举作为参数时可访问性不一致

Inconsistent accessibility when using enum as parameter

所以我在做一个小问题,但是运行变成了一个问题。我正在尝试使用枚举作为参数打开 (WPF) 表单,如您在下面的代码片段中所见。

public myForm(otherClass.myEnum en)
{
    InitializeComponent();
    //my other code comes here
}

在其他班级:

class otherClass
{
    public enum myEnum
    {
        item1,
        item2
    }
}

现在,我的问题是 Visual Studio 给我以下错误:

Error   1   Inconsistent accessibility: parameter type 'myProject.otherClass.myEnum' is less accessible than method 'myProject.myForm.myForm(myProject.otherClass.myEnum)'  C:\Users\MyUsername\Documents\Visual Studio 2013\Projects\MyProject\MyProject\myForm.xaml.cs    46  16  myForm

然而,枚举是 public。我查了一下错误,但其他人通常忘记制作他们的枚举,而我确实制作了我的 public。我也不希望将枚举移动到我的表单 class。

感谢所有帮助!

类型的可访问性受其最外层范围类型可访问性的限制,在我们的枚举示例中,它将是内部类型,因为它在另一个 class 和 [=12= 的定义范围内]es 默认定义为内部。 如果您的表单定义为 public 并且其中一个是 public 成员,则可能会出现此问题,在我们的示例中,public 构造函数接受内部可访问性类型参数。 要解决此问题,您可以将另一个 class 定义为 public.

class外面的enum设为public,像这样:

public myForm(otherClass.myEnum en)
{
    InitializeComponent();
    //my other code comes here
}
namespace NameSpace
{
    public enum myEnum
    {
        item1,
        item2
    }

    class otherClass
    {

    }
}