所以我提出了一个小问题,但遇到了问题。我尝试使用枚举作为参数打开(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
然而,枚举是公开的。我查了一下这个错误,但是其他人通常都忘记了他们的枚举,我确实让我公开了。我也不想将枚举移动到我的表单类。
感谢所有帮助!
答案 0 :(得分:1)
类型的可访问性受其最外部作用域类型可访问性的限制,在我们的情况下,对于枚举它将是内部的,因为它在其他类的定义范围内,默认情况下类定义为内部。 如果您的表单被定义为public并且其中一个是公共成员,则可能会出现此问题,在我们的示例中,公共构造函数接受内部可访问性类型参数。 要解决此问题,您可以将其他类定义为public。
答案 1 :(得分:0)
将enum
之外的class
设为public
,如下所示:
public myForm(otherClass.myEnum en)
{
InitializeComponent();
//my other code comes here
}
namespace NameSpace
{
public enum myEnum
{
item1,
item2
}
class otherClass
{
}
}