Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不一致的可访问性:参数_C# - Fatal编程技术网

C# 不一致的可访问性:参数

C# 不一致的可访问性:参数,c#,C#,我是C#的新手,现在正尝试开发我的第一个Windows窗体应用程序 public partial class AddCourse : Form { Course course; public AddCourse(Course course) { this.course = course; InitializeComponent(); } 这里的问题是我得到了一个错误 错误CS0051可访问性不一致:参数类型“Course”的可

我是C#的新手,现在正尝试开发我的第一个Windows窗体应用程序

 public partial class AddCourse : Form
 {
    Course course;
    public AddCourse(Course course)
    {
        this.course = course;
        InitializeComponent();
    }
这里的问题是我得到了一个错误

错误CS0051可访问性不一致:参数类型“Course”的可访问性不如方法“AddCourse.AddCourse(Course)”的可访问性

我知道在公共方法中调用私有变量时通常会发生这种情况。但在我的例子中,我不知道问题出在哪里

我有一个与此类似的示例代码,它运行得很好


有谁能告诉我我错过了什么吗?

很可能你的课没有公开

public class Course {
...
}

您需要将类型
课程
公开;i、 e

public class Course {...}

如果公共类型上的公共方法采用参数:所有这些参数都必须是公共的。否则调用方可能无法理解API。

可能是因为您的课程是私有的。尝试公共类课程{}这不起作用,因为我在这里访问它
AddCourse form=newaddcourse(课程)并且没有错误。@FGpier“这不起作用”是什么意思?您描述的错误是一个非常常见的错误,源于公共API上存在非公共类型。这正是你在这里所做的。当你将
课程
公开时会发生什么?我的课程是公开的。很抱歉,我也应该粘贴此代码
公共类课程{protected XmlDocument root;protected XmlNode coursenode;protected XmlNode nameattr;}
这不会修复错误。怎么可能在我的另一个项目上工作,而在我的项目上却不工作?代码相同,设计相同(文本字段、按钮等的名称)。你知道我可能缺少什么吗?@FGpier是
课程
可能嵌套在一个非公共类中?i、 e.
class Something{…public class Course{…}{…}
?它在一个名称空间
名称空间GradePredictionTool{公共枚举级别{级别4=4,级别5=5,级别6=6,}类课程中{受保护的XmlDocument根;受保护的XmlNode coursenode;受保护的XmlNode nameattr;公共课程(XmlDocument根,XmlNode coursenode){this.root=root;this.coursenode=coursenode;this.nameattr=this.coursenode.Attributes.GetNamedItem(“名称”);mergeLevels();}…