Visual Studioならたった1秒でメソッドの抽出ができる!
メソッド抽出によるリファクタリング
Visual Studioには、既存のコードから新しいメソッドを簡単に作成できる『メソッドの抽出』機能が備わっています。
この機能を使うと、冗長なコードを整理し、保守性を向上させることができます。
なぜメソッド抽出が必要なのか?
・コードの再利用:同じロジックが複数の場所で使われている場合、それを一箇所に集約することで修正や変更が容易になります。
・可読性の向上:長いメソッドを分割することで、コードが分かりやすくなります。
・メンテナンス性の向上:バグの特定や修正が容易になります。
サンプルとして下記のコードを用意しました。
リファクタリング前
using System;
class Program
{
static void Main()
{
int number = 10;
if (number % 2 == 0)
{
Console.WriteLine($"{number} は偶数です。");
}
else
{
Console.WriteLine($"{number} は奇数です。");
}
}
}
上記のコードでは、後続処理で別の数値に対して奇数か偶数かを判定する必要が生じた場合、同じ条件を持つIF文を再び記述しなければなりません。そのような繰り返しは冗長で非効率的です。
メソッドを抽出することで、判定処理を共通化し、コードの再利用性を高めるとともに、修正や保守が容易になります。
リファクタリング後
using System;
class Program
{
static void Main()
{
int number = 10;
PrintEvenOrOdd(number);
}
static void PrintEvenOrOdd(int number)
{
if (number % 2 == 0)
{
Console.WriteLine($"{number} は偶数です。");
}
else
{
Console.WriteLine($"{number} は奇数です。");
}
}
}
奇数・偶数の判定処理をメソッドとして抽出することで、異なる数値に対しても簡単に判定を行えるようになります。
このように『メソッドの抽出』を行うことで、コードの可読性や再利用性が大幅に向上します。
理想としては、初めからメソッド化を意識してコーディングすることですが、実際にはある程度コードを書いた段階で「この処理はメソッド化したほうがいいな……」と気づくことも少なくありません。
そしていざ、処理を外に出そうとしても、「えーっと、引数は……」などと確認していると案外時間がかかるんですよね。
そんなとき、Visual Studioなら、メソッド抽出化はたったの1秒で可能です。
メソッド抽出の手順
1.抽出するコードを選択します。
if (number % 2 == 0)
{
Console.WriteLine($"{number} は偶数です。");
}
else
{
Console.WriteLine($"{number} は奇数です。");
}
2.ショートカット Ctrl + R から Ctrl + M の順に押して「メソッドの抽出」を実行します。
static void Main()
{
int number = 10;
NewMethod(number);
}
static void NewMethod(int number)
{
if (number % 2 == 0)
{
Console.WriteLine($"{number} は偶数です。");
}
else
{
Console.WriteLine($"{number} は奇数です。");
}
}
たったこれだけ。
これだけでメソッドの抽出が可能です。
あとは必要に応じてメソッド名に適切な名前を付けるだけです。
上記以外にも、Ctrl + . で「クイックアクションとリファクタリング」メニューを表示し、抽出オプションを選択することもできます。
メリットと注意点
メソッドの抽出により、冗長なコードを削減することでコードの品質が向上します。
ただし、抽出したメソッドが適切に設計されているかを考えることも重要です。
具体的には、メソッドの責任範囲を明確にし、一つのメソッドに複数の責務が含まれないよう注意する必要があります。
これにより、コードの可読性や保守性がさらに向上し、バグの発生を防ぎやすくなります。
適切に設計されたメソッドは、プロジェクト全体の信頼性と効率性を高める鍵となります。
まとめ
Visual Studioのメソッド抽出機能は、効率的なリファクタリングを実現する強力なツールです。
コードの冗長性を減らし、再利用性や保守性を向上させるために、日常的に活用する価値があります。
メソッドの設計や責任範囲にも注意を払いながら、この機能を積極的に取り入れて、品質の高いコードを目指しましょう。
このカテゴリの最新記事
2024.04.12
2023.12.06
2023.07.03
2024.06.07