削除したい (または非公開にしたい) パラメーターなしのコンストラクターを持つクラスがあります。
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 つの項目を修正する複雑な正規表現を作成しても、実際には大きな節約にはなりません。