You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#编译报错:无对应构造函数所需参数,如何修复构造函数?

编译错误修复及代码优化方案

错误根源

编译错误的核心原因是Worker类继承自Human类,但Human类仅提供了带两个string参数的构造函数,未定义无参构造函数。C#规定:当子类未显式定义构造函数时,编译器会自动生成默认无参构造函数,该函数会尝试调用父类的无参构造函数。由于你的Human类不存在无参构造,因此触发编译报错。


修复方案

以下两种方案均可解决编译问题,同时优化代码以满足你计算薪资并展示的需求:

方案一:给Human类添加无参构造函数

在Human类中补充无参构造,让Worker的默认构造函数能正常调用父类构造:

class Human
{
    private string value1;
    private string value2;

    // 添加无参构造函数
    public Human() { }

    public Human(string input1, string input2)
    {
        value1 = input1;
        value2 = input2;
    }

    public void DisplayInfo()
    {
        Console.WriteLine("\nfirst name is: {0}", value1);
        Console.WriteLine("last name is: {0}", value2);
    }
}

方案二:给Worker类添加构造函数,显式调用父类带参构造

在Worker类中定义构造函数,通过: base()语法显式调用父类的带参构造,同时传递名字和姓氏参数:

class Worker : Human
{
    private int Hours;
    private int wages = 50;
    private int result;

    // 显式调用父类的带参构造函数
    public Worker(string firstName, string lastName) : base(firstName, lastName) { }

    public int HourlyWage(int hour)
    {
        Hours = hour;
        result = hour * wages;
        return result; // 修正返回值:返回计算后的总薪资,而非输入的工时
    }

    // 重写DisplayInfo,同时展示父类信息和薪资计算结果
    public new void DisplayInfo()
    {
        base.DisplayInfo(); // 复用父类逻辑展示名字姓氏
        Console.WriteLine("工作时长: {0} 小时", Hours);
        Console.WriteLine("时薪: {0} 元", wages);
        Console.WriteLine("总薪资: {0} 元", result);
    }
}

完善Main方法以实现需求

修改Main方法,实例化Worker类并调用相关方法,完成用户输入、薪资计算和结果展示:

class Program
{
    static void Main(string[] args)
    {
        string input1, input2;
        int hour;

        Console.Write("First name : ");
        input1 = Console.ReadLine(); // Console.ReadLine本身返回string,无需额外转换
        Console.Write("Last name: ");
        input2 = Console.ReadLine();
        Console.Write("Enter hours : ");
        hour = Convert.ToInt32(Console.ReadLine());
       
        // 实例化Worker并传递用户输入的名字姓氏
        Worker worker = new Worker(input1, input2);
        worker.HourlyWage(hour); // 执行薪资计算
        worker.DisplayInfo(); // 展示所有信息
    }
}

内容的提问来源于stack exchange,提问作者Nixele Adlaon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 20:20:16