JetBrains Rider 2026.1 Help

代码检查:使用 'with' 表达式代替对象初始值设定项

当正常的对象初始值设定项可以完成相同作业且无需克隆时,此检查会报告在新创建对象上使用 with 表达式的情况。 如果左侧已经是 new T() ,且没有有意义的初始值设定项,则不需要先克隆。 普通对象初始值设定项更简短且更清晰。

示例

var item = new Record() with { Value = 42, Name = "test" }; record Record { public int Value { get; init; } public string Name { get; init; } }
var item = new Record { Value = 42, Name = "test" }; record Record { public int Value { get; init; } public string Name { get; init; } }

快速修复

用对象初始值设定项替换 with 表达式。

2026年 5月 8日