C# 派生类构造函数错误

C# 派生类构造函数错误,c#,c#-3.0,C#,C# 3.0,试图非常简洁地解释这一点 我有一个抽象基类和两个派生类 基类有一个构造函数,该构造函数接受单个字符串参数并将其分配给字段 派生类构造函数调用基类构造函数,每个构造函数都接受一个字符串参数 它们是在主解决方案中引用的类库项目的一部分 大体上,当我尝试创建类的实例时,传入一个参数(应该是这样),我遇到了以下错误: library.class不包含接受单个参数的构造函数 如果我创建的对象没有参数,则会创建以下错误行: library.class.constructor(字符串)由于其保护级别而无法

试图非常简洁地解释这一点

  • 我有一个抽象基类和两个派生类
  • 基类有一个构造函数,该构造函数接受单个字符串参数并将其分配给字段
  • 派生类构造函数调用基类构造函数,每个构造函数都接受一个字符串参数
  • 它们是在主解决方案中引用的类库项目的一部分
  • 大体上,当我尝试创建类的实例时,传入一个参数(应该是这样),我遇到了以下错误:
library.class
不包含接受单个参数的构造函数

如果我创建的对象没有参数,则会创建以下错误行:

library.class.constructor(字符串)
由于其保护级别而无法访问

我无法找到这个问题的解决方案,我在下面提供了我的基本代码,如果有人能看看并判断这里发生了什么错误,那将非常棒:

基类: 派生类: 主要方法是:
我相信这是我程序的核心,希望有人能指出这里发生的错误

您应该明确地将基类和派生类声明为
public
。for类是
内部的
,因此这两个类都无法从主方法访问。它们只能从类库项目中访问。

基类EmployeeBase中的字符串是私有的。尝试将其公开。

我看到的唯一问题是,
员工豁免
内部
而不是
公开
,但这与错误消息不匹配…
我想,您没有向我们展示所有相关代码,或者代码与您展示的代码确实略有不同。

您应该会收到三条错误消息:

Test.cs(7,9): error CS0122: 'EmployeeExempt' is inaccessible due to its
        protection level
Test.cs(7,35): error CS0122: 'EmployeeExempt' is inaccessible due to its
        protection level
Test.cs(7,31): error CS1729: 'EmployeeExempt' does not contain a constructor
        that takes 1 arguments
前两个问题应该很清楚——正如其他答案所说,EmployeeBase和EmployeeException都是内部类(非嵌套类型的默认可访问性),这意味着它们只能在同一程序集中访问。包含Main方法的类位于不同的程序集中,因此您无权访问它们

把它们公之于众


我承认最后一条错误消息有点误导,但您应该查看所有的错误消息,而不仅仅是那条-前两条应该为您提供足够的关于发生了什么的提示。

您的两个类都被声明为私有类。在类名前面加上public前缀,或者如果它们要在同一程序集中,可能是内部的。

基类构造函数是public的。不过,类本身不是这样。@Sujay:您用私有字段进行的编辑仍然是错误的,因此,我不会删除我的否决票。@Daniel。没问题“你犯的每一个错误都表明你还在学习”-约翰·列侬(我的吉他轻轻地哭泣):-)嗯,你能把下面的一个答案标记为正确吗?
class EmployeeExempt : EmployeeBase
    {
        public EmployeeExempt(string CurrentEmployeeNumber) : base(CurrentEmployeeNumber) 
        { }
........
EmployeeExempt emp1 = new EmployeeExempt("1000");
Test.cs(7,9): error CS0122: 'EmployeeExempt' is inaccessible due to its
        protection level
Test.cs(7,35): error CS0122: 'EmployeeExempt' is inaccessible due to its
        protection level
Test.cs(7,31): error CS1729: 'EmployeeExempt' does not contain a constructor
        that takes 1 arguments