2016-11-25 98 views
0

的反相缺省值,如果我有這樣的方法:C#重構:布爾參數

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

是否有任何重構(內置,R#或其他)翻轉「標誌的該默認值「參數爲true,自動修復所有用法(從所有調用」false「的調用中刪除」false「,並將」true「添加到其他所有調用中)?

+0

到目前爲止,我知道,沒有辦法做這樣的事情。 Visual Studio 2015允許您使用正則表達式進行搜索和替換。但我認爲這是危險的,並且會改變更多的代碼,然後您會期望。 – Sebi

+0

我可以問你爲什麼需要改變默認值嗎?它只是用於semtantics? –

+0

嘿,當然你可以問。這是一個設計錯誤的內部API,可以這麼說。所以給定的默認值的使用比倒轉的情況少得多。我知道可選參數是邪惡的,但如果使用*,它們應該代表最常用的情況,我想。 –

回答

0

我不認爲Visual Studio或ReSharper可以反轉布爾參數的默認值。

但是,您可以反轉該方法中參數的所有用法。 隨着ReSharper的你可以按下Ctrl鍵++[R(或右鍵單擊聲明布爾並按Refactor this),然後在菜單中選擇Invert Boolean。這將打開一個對話框,讓您選擇一個新名稱,然後ReSharper將顛倒布爾值的所有用法。

Screenshot of the refactor menu.

+0

謝謝,但這不適用於方法參數/參數,是嗎?也許我的R#版本太舊了? –

+0

@ Dr.TimdosSantos它至少在最新版ReSharper中運行。我試圖找出哪個版本引入了此功能。 –

+0

@ Dr.TimdosSantos對不起,我沒有正確閱讀這個問題。看來ReSharper不處理參數聲明中的默認值。 –