2012-01-22 55 views
3

如果我在我的程序的許多位置輸入了相同的文本字符串,是否有任何方法可以將它提取到字符串變量,並且在最初鍵入的每個位置都將代碼指向此一個變量?Visual Studio C# - 我可以將一段文本提取到字符串變量嗎?

例如,我有以下代碼:

if(File.Exists("C:\\whatever.txt")) 
{ 
    File.Delete("C:\\whatever.txt"); 
} 

我可以重構是這個:

string s1 = "C:\\whatever.txt"; 

if(File.Exists(s1)) 
{ 
    File.Delete(s1); 
} 

我知道這是我應該已經初步完成,但可以說我」 m得到一個程序的邏輯首先排序,然後我來後整理我的代碼,在Visual Studio中是否有任何快捷方式允許我這樣做,或者我需要手動執行?

謝謝

+0

em,嗨,查找和替換是不夠的? – Jaxedin

+0

我知道我可以使用查找和替換,只是想知道是否有一個閃爍的替代方案,@Tigran我想我可以在記事本中打開* .cs文件並在文本本身上進行查找和替換?但是,下面的人建議我將考慮Resharper =) – JMK

+0

哦,我明白了。我的壞:) – Jaxedin

回答

5

如果使用Resharper,你可以選擇第一個字符串,按CTRL +[R + V引進的變量。對於相同的字符串,它會問你是否要用你介紹的變量替換它們。

CTRL + SHIFT +[R是另一個很好的鍵盤快捷鍵這也顯示了其他重構選項想介紹的參數,字段變量等

如果您使用Visual Studio你真的應該有ReSharper的伊莫!

+0

這是很難選擇一個最好的答案,因爲他們都非常相似,但這一個有最詳細的!感謝大家! – JMK

1

您需要手動完成。如果您在應用程序的許多地方使用相同的路徑,則還可以將其存儲在配置文件中。

3

我不認爲在Visual Studio中有這樣的功能,但Resharper擁有它:它被稱爲Extract Variable重構。我真的習慣了它的鍵盤快捷鍵(CTRL + RCTRL + V)。

它的一個好處是,它詢問是否替換字符串的所有出現,或只是選擇一個。

1

可能最好是手動完成它,除非你有Resharper,也對String Literals的差異以及它們如何影響你的代碼感到厭倦。

2

Resharper對於這類事情來說是一個非常好的工具。這是一個可用的視覺工作室插件 http://www.jetbrains.com/resharper/

安裝完成後,您可以使用Ctrl + Shift + R刪除這樣的魔術字符串。您也可以使用Visual Studio的「查找和替換」功能。

相關問題