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

C# 使用枚举作为参数时不一致的可访问性,c#,parameters,enums,C#,Parameters,Enums,所以我提出了一个小问题,但遇到了一个问题。我尝试使用枚举作为参数打开(WPF)表单,如下面的代码片段所示 public myForm(otherClass.myEnum en) { InitializeComponent(); //my other code comes here } public myForm(otherClass.myEnum en) { InitializeComponent(); //my other code comes here }

所以我提出了一个小问题,但遇到了一个问题。我尝试使用枚举作为参数打开(WPF)表单,如下面的代码片段所示

public myForm(otherClass.myEnum en)
{
    InitializeComponent();
    //my other code comes here
}
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成员,那么问题可能会出现。在我们的示例中,public构造函数接受一个内部可访问性类型参数。
要解决此问题,您可以将另一个类定义为public。

枚举
置于
之外作为
public
,如下所示:


包含的类不是
public
,这将枚举的可见性限制为
otherClass
的可见性。可能重复感谢,很抱歉不知道这一点。我没有那么多编程经验,也没想到我会把一门课公之于众。嵌套类不是类内部的类吗?我没有,所以我不认为这是重复的。你在一个类中有一个枚举。同样的概念也适用于类内部的类。学习如何从一个特定的情况中抽象出一个问题,并将其应用到你自己的情况中,这将使你成为一名优秀的程序员。谢谢,这正是我所寻找的!
namespace NameSpace
{
    public enum myEnum
    {
        item1,
        item2
    }

    class otherClass
    {

    }
}