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

C#中Get/Set方法与方法重载哪种更优?附场景示例

推荐方案分析:部门年度预算的读写实现

嘿,这个问题问到点子上了,我结合C#的语法规则和实际开发的最佳实践来帮你拆解这三个方案:

先直接排除不可行的方案:方案二和方案三

C#的方法重载有个核心规则:仅靠返回值不同,不能作为区分重载的依据。不管是返回decimal还是void,只要方法名、参数列表完全一致,编译器都会判定为重复定义,直接报错。所以方案二(返回值不同的同名Budget重载)和方案三(void/decimal的Budget重载)在C#里根本无法编译通过,直接排除这两个选项。

推荐方案:方案一(带Get/Set前缀的方法)

剩下的方案一是完全可行且符合.NET开发习惯的,原因主要有这几点:

  • 语义绝对清晰:GetBudget()和SetBudget(decimal value)一眼就能看出是读取预算和设置预算的操作,团队成员看代码不用猜意图,可读性拉满。
  • 适配复杂业务逻辑:如果读写预算需要额外的业务处理(比如设置预算时要验证金额是否为正、记录操作日志,读取时要从数据库/配置中心拉取最新数据),用方法比属性更合适——属性通常用于简单的字段访问,而方法适合封装有副作用或复杂流程的操作。
  • 生态兼容性好:这种命名方式在.NET生态里非常普遍,不管是老项目还是新项目,大家都能快速理解和维护。

额外补充:如果逻辑简单,也可以考虑用属性

如果你的预算读写只是简单的字段访问(没有复杂验证或业务逻辑),其实C#的属性语法会更简洁:

public decimal AnnualBudget { get; set; }

但如果涉及复杂逻辑,还是回到方案一的方法模式更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:09:29