我有一个类,它有一个我想删除(或设为私有)的无参数构造函数
class C
{
string A { get; set; }
int B { get; set; }
public C() { } //Problem
public C(A a, B b)
{
A = a;
B = b;
}
}
问题是,代码库中充斥着数百个表达式,例如new C {A = a, B = b}
, 或new C() { B = b, A = a }
,在每个可能的变化、字段排序等中(直到今天我才知道括号是可选的)。是否有任何自动修复我的代码以使用 2 参数构造函数的方法?这些更改是微不足道的,但我想如果我必须手动进行,我会发疯的。我的示例有 5 或 6 个参数,并非所有参数都是必需的,等等。
(动机是使类不可变。隐藏无参数构造函数和公共设置器是第一步)
我在正则表达式方面取得了一些成功(Notepad++ 的正则表达式支持似乎在 4 次捕获后停止),但是编写一个复杂的正则表达式来一次修复 6 个项目实际上并不能为我节省很多。