shuhelohelo’s blog

Xamarin.Forms多めです.

Visual Studioでメソッドのシグネチャを変更する便利な機能

Visual Studioは候補提示、補完、変数などの名前の一括変更といった機能が非常に強力かつ便利です。

加えて、メソッドの引数の一括変更も可能です。 一括変更可能な操作は「削除」「位置の入れ替え」です。

例えばもともと用意していた引数の一つが不要になったとか、わかりやすさのために位置を変えたいといったことがあります。

そんなときには「シグネチャを変更」機能が役立ちます。

例えば以下のような引数を3つとるメソッドAddがあったとします。

    class Program
    {
        static void Main(string[] args)
        {
            var result = Add(100, 50, 3);

            Console.WriteLine(result);
        }

        static int Add(int a, int b, int c)
        {
            return a + b + c;
        }
    }

ここで、やっぱり引数bいらないなとなったとします。

↓こうしたい。

        static int Add(int a,  int c)
        {
            return a + c;
        }

メソッド名にカーソル(キャレット)を移動させ、ctrl+.リファクタリングのメニューを表示させます。

f:id:shuhelohelo:20190915145920p:plain

シグネチャを変更する(Change signature ...)」を選択します。すると以下のような変更画面が表示されます。

f:id:shuhelohelo:20190915150117p:plain

そうしたら、消したい引数bを選択してRemoveをクリックします。以下のように引数bに赤色の消し線が入り、下側のプレビュー欄には変更を適用した場合のシグネチャが表示されます。

f:id:shuhelohelo:20190915150247p:plain

これでOKを押せば、変更が適用されメソッドのシグネチャが変更されます。呼び出し側も変更されていることがわかります。

f:id:shuhelohelo:20190915150642p:plain

あくまでシグネチャの変更だけなので、メソッド内にはかつて引数だったものが残ります。これは手作業で変更する必要があるのは言うまでもありません。

インターフェースを使って実装されているメソッドのシグネチャ変更に重宝しそうです。