C#のリファクタリングとは?サンプルコードを用いて解説!

公開日時:   更新日時:
C#のリファクタリングとは?サンプルコードを用いて解説!
基本情報技術者試験の試験対策はこちら>>

SE
C#のリファクタリングについて教えてください。

PM
C#でリファクタリングを行う方法について紹介します。

リファクタリングとは?


C#のリファクタリングについて説明いたします。

まずリファクタリングとは、プログラムを整理することです。同じ作業を繰り返している処理や、実は不要な処理などを修正、変更しプログラムを読みやすくすることです。

C#のリファクタリングに興味がある方はご覧ください。

C#でリファクタリングを行う方法

実際にプログラムをリファクタリングしてみます。

リファクタリングを行うプログラムを見てみます。

実行結果:
———-計算プログラム———-
このプログラムでは入力した3つの数字(A、B、C)に、1-10の値を掛けて表示します。

Aの値を入力してください:10
Aの値に1-10を掛けた値
10、20、30、40、50、60、70、80、90、100

Bの値を入力してください:20
Bの値に1-10を掛けた値
20、40、60、80、100、120、140、160、180、200

Cの値を入力してください:30
Cの値に1-10を掛けた値
30、60、90、120、150、180、210、240、270、300

計算が完了しました。
———-計算プログラム終了———-

続いて文字合わせプログラムを起動しますか?(Y/N):Y

———-文字合わせプログラム———-
このプログラムでは入力した3つの文字(A、B、C)を、合わせて表示します。

Aの文字を入力してください:明日は

Bの文字を入力してください:晴れ

Cの文字を入力してください:ますか?

A、B、Cを合わせた値
明日は晴れますか?<

合わせ終わりました。
———-文字合わせプログラム終了———-

上記コード内にリファクタリング対象_X start/endと記述されています。そこをリファクタリング対象とします。

同じような処理

リファクタリング対処_1では、同じような処理を複数回行っています。今回の場合は処理を関数にすることができます。関数にすることで処理を一か所にし、呼び出すだけで使用できるようになります。

実際にC#でリファクタリングを行ってみます。

リファクタリング前

リファクタリング後

上記のように複数あったfor文の処理を関数にすることで、一つにまとめることができました。

使用していない処理

リファクタリング対象_2では、コードは書かれていますが、影響を一切与えていない処理となっています。今回の場合は不要なコードなので削除することができます。

実際にC#でリファクタリングを行ってみます。

リファクタリング前

リファクタリング後

上記のように不要な記述だったため、削除しても問題ありません。

クラスの肥大化

リファクタリング対象_3では、計算プログラムのクラスに文字合わせプログラムも記述しています。このように一つのクラスに様々な処理を記述しているとクラスが大きく、読みづらくなってしまいます。

今回の場合は文字合わせプログラムを別のクラスに分けることができます。

実際にC#でリファクタリングを行ってみます。

リファクタリング前

リファクタリング後

上記のように二つに分けることで、計算プログラムに必要な処理、文字合わせプログラムに必要な処理を明確にすることができ、わかりやすくなりました。

リファクタリング後のコード

C#でリファクタリングを行った結果以下のようなコードとなりました。

実行結果:
———-計算プログラム———-
このプログラムでは入力した3つの数字(A、B、C)に、1-10の値を掛けて表示します。

Aの値を入力してください:10
Aの値に1-10を掛けた値
10、20、30、40、50、60、70、80、90、100

Bの値を入力してください:20
Bの値に1-10を掛けた値
20、40、60、80、100、120、140、160、180、200

Cの値を入力してください:30
Cの値に1-10を掛けた値
30、60、90、120、150、180、210、240、270、300

計算が完了しました。
———-計算プログラム終了———-

続いて文字合わせプログラムを起動しますか?(Y/N):Y

———-文字合わせプログラム———-
このプログラムでは入力した3つの文字(A、B、C)を、合わせて表示します。

Aの文字を入力してください:明日は

Bの文字を入力してください:晴れ

Cの文字を入力してください:ですか?

A、B、Cを合わせた値
明日は晴れですか?

合わせ終わりました。
———-文字合わせプログラム終了———-

リファクタリングを行った結果プログラムが読みやすくなり、結果も変わりません。

SE
C#のリファクタリングについて理解できました。

PM
同じ作業を繰り返し処理や、実は不要な処理などを修正、変更しプログラムを読みやすくしてプログラムを整理すると良いでしょう。

C#でリファクタリングを行ってみよう

いかがでしたでしょうか。C#に限らず完成したプログラムを改めて確認すると、同じ処理を繰り返し使っていたり、不要になってしまった処理が存在したりします。

読みづらいコードになってしまうとそれが、原因でバグが発生してしまうこともあります。

ぜひご自身のC#コードを改めて確認して、リファクタリングを行ってみてください。


FEnetへの登録は左下のチャットが便利です 経験者優遇! 最短10秒!

.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags