2016-11-25 6 views
0

の反転デフォルト値私はこのような方法がある場合:C#リファクタリング:ブール・パラメータ

public void Foo(object arg1, object arg2, bool flag = false); 

を「フラグのデフォルト値を反転する任意のリファクタリング(ビルトイン、R#またはその他)があります( "false"で呼び出されるすべての呼び出しから "false"を削除し、他のすべてに "true"を追加する)、すべての用途を自動的に修正します。

+0

これまでのところ、私はこのようなことをする方法がないことを知っています。 Visual Studio 2015を使用すると、正規表現で検索して置き換えることができます。しかし、私はこれが危険であり、あなたが期待するより多くのコードを変更すると思います。 – Sebi

+0

デフォルト値を変更する必要があるのはなぜですか?セマンティクスのためだけですか? –

+0

ねえ、もちろんあなたは聞くことができます。これは、間違った方法で設計された内部APIです。したがって、与えられたデフォルト値は、逆の場合よりもはるかに少ない頻度で使用されます。私はオプションパラメータが悪であることを知っていますが、* if *が使用されている場合、それらは最も頻繁に使用されるケースを表すはずです。 –

答えて

0

私はVisual StudioやReSharperがブール型パラメータのデフォルト値を反転できないと思います。

ただし、メソッド内のパラメータのすべての用途を反転することはできます。 ReSharperので あなたははCtrl +Shiftキー + R(または宣言ブール値を右クリックし、[Refactor thisを押す)を押し、メニューにInvert Booleanを選択することができます。これにより、新しい名前を選択できるダイアログが開き、ReSharperはブール値のすべての用途を反転します。

Screenshot of the refactor menu.

+0

ありがとうございますが、これはメソッドのパラメータ/引数では機能しません。たぶん私のR#バージョンが古すぎるのでしょうか? –

+0

@ Dr.TimdosSantos少なくともReSharperの最新バージョンで動作します。私はどのバージョンがこの機能を導入したのか把握しようとしています。 –

+0

@ Dr.TimdosSantos申し訳ありませんが、質問を正しく読まなかった。 ReSharperはパラメータ宣言のデフォルト値を処理していないようです。 –

関連する問題