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

C#构造函数重载:能否用分号替代空大括号?

当然可以!这是C# 6.0+支持的简化写法

嘿,这个细节抓得很准!答案是肯定的——从C# 6.0版本开始,你完全可以把那些只调用其他构造函数的空大括号{}替换成分号;的写法,而且功能上和原来的代码完全一致。

修改后的代码示例:

class Foo 
{ 
    public int Value; 

    public Foo(Bar bar) : this(bar.Ga); 
    public Foo(Baz baz) : this(baz.Bu); 
    public Foo(Qux qux) : this(qux.Zo); 

    public Foo(int val) 
    { 
        ... 
        this.Value = val; 
        ... 
    } 
}

为什么可以这么写?

这是C#提供的语法糖,专门用来简化仅调用其他构造函数(this或base)、无额外逻辑的构造函数定义。编译之后,这种分号写法和原来的空大括号写法生成的IL代码完全相同,不会有任何性能或功能上的差异,只是让代码看起来更简洁清爽。

注意事项

如果之后你需要给这些构造函数添加额外逻辑(比如参数校验、日志输出等),就必须把分号改回大括号,把新增的代码写在括号里——毕竟分号只能用于完全空逻辑的构造函数调用场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:09:14