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

C#入门:类构造器中this.字段=参数写法的作用是什么?

代码示例

public class Thissser
{
    public string whatever;

    public Thissser(string whatever)
    {
        this.whatever = whatever;
    }
}

这行代码的作用

this.whatever = whatever;的作用是把构造函数接收的入参值,赋值给当前类的实例字段whatever,完成类实例初始化时的字段赋值。

为什么需要这么写

  • 上述代码里定义了两个同名的whatever:一个是属于类实例的成员字段,另一个是构造函数的入参
  • C#默认遵循「就近作用域优先」原则:如果在方法(包含构造函数)内部直接访问whatever,编译器会优先判定你用的是离当前代码更近的构造函数入参,而不是类的成员字段
  • this关键字在这里指代「当前正在初始化的类实例对象」,加上this.前缀后,就明确告诉编译器:等号左边的whatever是类的实例字段,不是构造函数的入参
  • 如果省略this直接写whatever = whatever;,就变成了把入参的值赋值给入参本身,完全没有实际意义,类的实例字段不会被赋值,后续访问该字段时会得到默认的null值,不符合初始化的预期

补充说明:如果你的构造函数入参命名和类字段不重复,比如入参叫inputWhatever,那么不需要加this,直接写whatever = inputWhatever;编译器也能正确识别,不存在冲突的情况下this可以省略。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:15:00