VS2022主构造函数快速操作异常:参数未自动赋值对应字段
C#主构造函数快速操作未自动为字段赋值的问题
问题描述
使用C#主构造函数创建类时,通过IDE快速操作添加构造函数参数的功能不符合预期:仅将参数添加到主构造函数签名中,却未自动完成参数到对应私有字段的赋值步骤。
重现步骤
- 初始类代码如下:
public class MyExample(SomeDependency dependency1) { readonly SomeDependency _dependency1 = dependency1; readonly ILogger<MyExample> _logger; }
- 此时
_logger字段未初始化,IDE弹出快速操作提示「Add parameters to MyExample(SomeDependency dependency1)...」 - 执行该快速操作后,类代码被修改为:
public class MyExample(SomeDependency dependency1, ILogger<MyExample> logger) { readonly SomeDependency _dependency1 = dependency1; readonly ILogger<MyExample> _logger; }
可见主构造函数已新增logger参数,但_logger字段仍未被赋值。
预期行为
执行快速操作后,除了将logger参数添加到主构造函数签名,还应自动将参数赋值给对应的_logger字段,预期生成的代码如下:
public class MyExample(SomeDependency dependency1, ILogger<MyExample> logger) { readonly SomeDependency _dependency1 = dependency1; readonly ILogger<MyExample> _logger = logger; }
内容的提问来源于stack exchange,提问作者NTE
相关产品推荐
相关产品推荐

