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

类问题求助:类未包含接受1个参数的构造函数

储蓄账户类调试方案

你的核心问题是构造函数定义错误:C#要求构造函数必须和类名完全一致(大小写敏感),且不能有返回值。你写的public double Savings(double beginningBalance)是普通方法而非构造函数,所以创建实例时(比如var saver1 = new savings(2000);)会提示找不到对应构造函数。

下面是具体修复步骤和修正后的代码:

关键修复点

  • 修正构造函数:删除返回值double,确保方法名与类名完全匹配(遵循C#命名规范,将类名改为Savings,构造函数同步改为Savings)
  • 调整余额属性逻辑:原SavingsBalance的set方法会自动累加利息,不符合业务逻辑(设置初始余额不应直接加利息),改为仅做单纯赋值,利息计算通过专门方法触发
  • 公开余额显示方法:原DisplaySaver为private,外部无法调用,改为public
  • 统一命名规范:静态属性、方法名遵循PascalCase,提升代码可读性

修正后的完整代码

using System;

namespace savingsAcct
{
    internal class Savings
    {
        public static double AnnualInterestRate { get; set; }

        private double _savingsBalance;

        // 正确的构造函数:无返回值,名称与类名一致
        public Savings(double beginningBalance)
        {
            _savingsBalance = beginningBalance;
        }

        public double SavingsBalance
        {
            get { return _savingsBalance; }
            set { _savingsBalance = value; }
        }

        public void CalculateMonthlyInterest()
        {
            // 基于当前余额计算月利息并累加
            _savingsBalance += _savingsBalance * (AnnualInterestRate / 12);
        }

        public static void ModifyInterestRate(double rate)
        {
            AnnualInterestRate = rate / 100;
        }

        public void DisplaySaver()
        {
            Console.WriteLine($"账户总余额:{_savingsBalance.ToString("c")}");
        }
    }
}

使用示例

// 设置年利率为4%
Savings.ModifyInterestRate(4);

// 创建两个储蓄账户实例
var saver1 = new Savings(2000);
var saver2 = new Savings(3000);

// 计算月利息并更新余额
saver1.CalculateMonthlyInterest();
saver2.CalculateMonthlyInterest();

// 显示余额
saver1.DisplaySaver();
saver2.DisplaySaver();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:20:28