C#中构造函数括号前的this关键字用途咨询
C#构造函数中
: this(...)的用途解释 你贴的这段代码里,: this(default(T))是C#里的构造函数重载调用语法,作用是让当前的无参构造函数,调用同一个类里另一个带参数的构造函数。
具体拆解一下:
this在这里指向当前类的另一个构造函数,括号里的参数就是传给那个构造函数的实参;default(T)是泛型类型T的默认值规则:如果T是引用类型(比如string),默认值是null;如果是值类型(比如int、bool),默认值是对应类型的内置默认值(int为0,bool为false)。
放到UniRx的ReactiveProperty场景里,这个无参构造本质是个“快捷入口”——它本身不写任何初始化逻辑,而是把工作交给类里另一个带T类型参数的构造函数(比如下面这个):
public ReactiveProperty(T initialValue) { // 这里包含了响应式属性的初始化、订阅逻辑等核心代码 }
通过: this(default(T))调用它,就不用把核心初始化逻辑重复写一遍,实现了代码复用。
这种写法的好处很明显:
- 减少代码冗余,所有初始化逻辑集中维护在一个构造函数里;
- 后续修改初始化逻辑时,只需要改动一处,降低出错概率;
- 给使用者提供了灵活的创建方式:既可以用
new ReactiveProperty<int>()使用默认值,也可以用new ReactiveProperty<int>(10)指定自定义初始值。
内容的提问来源于stack exchange,提问作者DeadDreams
相关产品推荐
相关产品推荐

