使用枚举作为参数时可访问性不一致
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
{
}
}
所以我在做一个小问题,但是运行变成了一个问题。我正在尝试使用枚举作为参数打开 (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
{
}
}