より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Set関数をプロパティに一括置換する小技

プライベートで10年以上前に自分が書いたソースの移行、リファクタリングなんてやってます。

Pos.SetY(100);

昔の自分はプロパティという概念をよく知らなかった割に、カプセル化にはこだわっていたらしく、Set関数経由で値を割り当てるように指定しています。

元々、プログラミングをJavaC++でスタートしてからC#に取り掛かったため、あまり言語に合わせた書き方を知りませんでした。

単純にYのプロパティにした方が扱いやすいのでこれを機に変更することにしました。

これを一つ一つ手で直してました。置換するにも.SetYに対して、単純に.YとしてもY(100);とコンパイルエラーです。

いざ考えてみると「.SetY(」を「.Y = (」で一括置換にすればいいことに気づいたのです。

Pos.Y = (100);

無駄なカッコが出来ますが、古いソースを移行するときに一番大事なのは大量のコンパイルエラーからビルドしても通る状態に持っていくことです。

f:id:rimever:20190317224945p:plain

それが出来ないとマージはおろか、コミットも出来ませんので。

Pos.AddZ(100);

こんなコードを書いてしまったのも今、後悔しても仕方ないです。これも「.AddZ(」 を「+= (」に置換です。