Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual Studio C#-我可以将一段文本提取到字符串变量吗?_C#_Visual Studio - Fatal编程技术网

Visual Studio C#-我可以将一段文本提取到字符串变量吗?

Visual Studio C#-我可以将一段文本提取到字符串变量吗?,c#,visual-studio,C#,Visual Studio,如果我在程序中的多个位置键入了相同的文本字符串,是否有任何方法可以将其提取到字符串变量,并在最初键入的每个位置,让代码指向这一个变量 例如,我有以下代码: if(File.Exists("C:\\whatever.txt")) { File.Delete("C:\\whatever.txt"); } 我可以将其重构为以下内容: string s1 = "C:\\whatever.txt"; if(File.Exists(s1)) { File.Delete(s1); } 我

如果我在程序中的多个位置键入了相同的文本字符串,是否有任何方法可以将其提取到字符串变量,并在最初键入的每个位置,让代码指向这一个变量

例如,我有以下代码:

if(File.Exists("C:\\whatever.txt"))
{
    File.Delete("C:\\whatever.txt");
}
我可以将其重构为以下内容:

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

if(File.Exists(s1))
{
    File.Delete(s1);
}
我知道这是我一开始应该做的,但假设我先整理程序的逻辑,然后整理代码,Visual Studio中是否有允许我这样做的快捷方式,或者我需要手动这样做


谢谢

您需要手动操作。如果在应用程序的许多地方使用相同的路径,也可以将其存储在配置文件中。

我认为Visual Studio中没有类似的功能,但Resharper有它:它被称为提取变量重构。我真的习惯了它的键盘快捷键(CTRL+R,CTRL+V)

它的一个优点是询问是替换所有出现的字符串,还是仅替换选定的字符串。

如果使用,您只需选择第一个字符串,按CTRL+R+V键即可引入变量。对于相同的字符串,它将询问您是否希望用引入的变量替换这两个字符串

CTRL+SHIFT+R是另一个很好的键盘快捷键,它还显示了其他重构选项,如引入参数、字段、变量等


如果你使用Visual Studio,你真的应该有Resharper imo

可以说,最好是手动操作,除非您有Resharper,否则您也会厌倦它们之间的差异以及它们如何影响您的代码。

Resharper对于这类事情来说是一个非常好的工具。这里有一个VisualStudio插件


一旦安装,您就可以使用Ctrl+Shift+R来删除像这样的神奇字符串。您也可以使用visual studio的查找和替换功能。

em,您好,查找和替换还不够?我知道我可以使用查找和替换,只是想知道是否有更灵活的替代方法,@Tigran我想我可以在记事本中打开*.cs文件,对文本本身进行查找和替换?然而,下面的人建议使用Resharper,我将对其进行研究=)很难选择最佳答案,因为它们都非常相似,但这一个最为详细!谢谢大家!