新しもの好きプログラマの耳より情報ブログ

仕事でもあるプログラミングについて役に立ちそうな情報を発信していこうというブログです。役に立たなそうな情報はfacebookで。

C#のReSharperで、DI等のメンバ変数代入が楽になってストレスが減った

ReSharperで日々のコーディングが便利になっているが、実に多機能でまだ使い切れていない。

使っていて「お、これはいいな」と思ったものを1つ紹介しよう。

コンストラクタに引数を受け取り、それをメンバ変数に代入して保持しておく。DIも含めて、そういうコードを書く機会は多いと思う。

しかしよく書く割には、手順が多くて面倒である。

  1. 引数を書く
  2. 引数と似た名前のメンバ変数を書く
  3. メンバ変数へ引数を代入するコードを書く

という3ステップ。この2と3をResharperがやってくれることに気づいた。

Introduce Fieldというリファクタリングメニューを使う。

コンストラクタの引数を書き、引数を選択してRefactor thisメニューからこれを選ぶ。すると上記2と3のコードをパッと生成してくれる。こんな感じ。

contruct(int input){
}

int _input;
contruct(int input){
    _input = input;
}

オプション指定できるダイアログが開くので、ここで「_inputじゃなくてm_inputにしたい」といったローカルルールにも対応可能。

とても地味だが、この機能1つで大分ストレスが減って少しコーディング速度が上がると思う。ResharperにもVisual Studioにもまだまだこういう便利機能がありそうなので、いろいろ試していこうと思う。