ホームページ  >  記事  >  php教程  >  C# 抽出メソッドのリファクタリング

C# 抽出メソッドのリファクタリング

WBOY
WBOYオリジナル
2016-07-06 13:30:211042ブラウズ

引用: https://msdn.microsoft.com/zh-CN/library/0s21cwxk.aspx Extract メソッドは、既存のメンバーのコード スニペットから新しいメソッドを作成する便利な方法を提供するリファクタリング操作です。 ExtractMethod を使用すると、既存のメンバーのコード ブロックからコード セットを抽出して新しいメソッドを作成できます。抽出された新しいメソッドには、選択したコードが含まれており、

引用: https://msdn.microsoft.com/zh-CN/library/0s21cwxk.aspx

「メソッドの抽出」 は、既存のメンバー内のコードの断片から新しいメソッドを作成する便利な方法を提供するリファクタリング操作です。

「メソッドの抽出」 を使用すると、既存のメンバーのコード ブロックからコードのセットを抽出して新しいメソッドを作成できます。抽出された新しいメソッドには選択されたコードが含まれており、既存のメンバー内の選択されたコードは新しいメソッドの呼び出しに置き換えられます。 コード スニペットを独自のメソッドに変換することで、コードを迅速かつ正確に再編成して、再利用性と信頼性を向上させることができます。

「抽出方法」には以下の利点があります:

  • 個別の再利用可能な方法を強調することで、ベスト コーディング プラクティスを奨励します。

  • より良い組織化を通じてコードの自己文書化を奨励します。

    わかりやすい名前を使用すると、高レベルのメソッドが一連の注釈のように見えることがあります。

  • オーバーロードを簡素化するための詳細なメソッドの作成を奨励​​します。

  • コードの重複を減らします。

1.

ExtractMethod という名前のコンソール アプリケーションを作成し、プログラムを次のコード例に置き換えます。 リーリー

2. 抽出するコード スニペットを選択します:

リーリー

3.

「再構築」メニューで、「抽出方法」をクリックします。

「抽出方法」

ダイアログボックスが表示されます。 キーボード ショートカット Ctrl+R、Ctrl+M を入力して、

抽出方法

ダイアログ ボックスを表示することもできます。 選択したコードを右クリックし、

「リファクタリング」

をポイントして、「メソッドの抽出」をクリックして、「メソッドの抽出」ダイアログボックスを表示することもできます。 4.

「新しいメソッド名」

ボックスに新しいメソッドの名前を指定します(CircleAreaなど)。 新しいメソッド シグネチャのプレビューが

「メソッド シグネチャのプレビュー」

の下に表示されます。 5.

「OK」をクリックします

備考:

「メソッドの抽出」コマンドを使用すると、新しいメソッドは同じクラス内のソースメンバーの後に挿入されます。

支店の種類 クラスが部分型の場合、

「メソッドの抽出」

はソースメンバーの直後に新しいメソッドを生成します。

「メソッドの抽出」

新しいメソッドのシグネチャを決定し、新しいメソッドのコードがインスタンス データを参照しない場合は静的メソッドを作成します。 ジェネリック型パラメータ 抽出されたメソッドに制約のないジェネリック型パラメーターがある場合、値が割り当てられていない限り、生成されたコードはパラメーターに

ref

修飾子を追加しません。 抽出されたメソッドがジェネリック型引数として参照型をサポートする場合は、メソッド シグネチャの仮パラメーターに

ref

修飾子を手動で追加する必要があります。 匿名メソッド 匿名メソッドの外部で宣言または参照されているローカル変数への参照を含む匿名メソッドの一部を抽出しようとすると、Visual Studio はセマンティック変更の可能性について警告します。

匿名メソッドがローカル変数の値を使用する場合、その値は匿名メソッドの実行時に取得されます。 匿名メソッドが別のメソッドに抽出されると、抽出されたメソッドが呼び出されたときにローカル変数の値が取得されます。

次の例は、この意味上の変更を示しています。 このコードを実行すると、

11

がコンソールに出力されます。

「メソッドの抽出」

を使用して、コードコメントでマークされたコードの領域を独自のメソッドに抽出し、リファクタリングされたコードを実行すると、10がコンソールに出力されます。 リーリー この問題を解決するには、クラスの匿名メソッド フィールドで使用されるローカル変数を作成します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。