Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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
C# 将@符号用于目录,以避免两个反斜杠';不需要_C#_Parsing_Backslash - Fatal编程技术网

C# 将@符号用于目录,以避免两个反斜杠';不需要

C# 将@符号用于目录,以避免两个反斜杠';不需要,c#,parsing,backslash,C#,Parsing,Backslash,这看起来很简单,但经过研究,我无法找到如何在目录中使用@符号来防止它被反斜杠 一个例子是 DirectoryInfo folderInfo = new DirectoryInfo(@"C:\"); 但在我的应用程序中,目录将是动态的,因此我无法执行此操作: DirectoryInfo folderInfo = new DirectoryInfo(@Globals.directoryRoute); 所以我想知道在字符串前面加上@符号的正确方法是什么 Globals.directoryRoute

这看起来很简单,但经过研究,我无法找到如何在目录中使用@符号来防止它被反斜杠

一个例子是

DirectoryInfo folderInfo = new DirectoryInfo(@"C:\");
但在我的应用程序中,目录将是动态的,因此我无法执行此操作:

DirectoryInfo folderInfo = new DirectoryInfo(@Globals.directoryRoute);
所以我想知道在字符串前面加上
@
符号的正确方法是什么

Globals.directoryRoute
设置为
C:\
,但用户可以更改此输入,因此我希望不必解析每个双反斜杠,我可以使用此设置,这样只需要一个反斜杠


这是一种有效的方法,还是我应该每隔一秒就解析一次反斜杠?

前缀是一种告诉编译器不要将反斜杠作为以下字符串中的转义字符的工具。如果字符串是在运行时输入的,则不必担心这一点。因此,您可以按原样使用
Globals.directoryRoute
的内容。

前缀是一种告诉编译器不要将反斜杠作为以下字符串中的转义字符的工具。如果字符串是在运行时输入的,则不必担心这一点。因此,您可以直接使用Globals.directoryRoute的内容。

双反斜杠仅用于代码中的字符串文本。在内存中,字符串中只存储一个反斜杠,因此在处理内存中已有的字符串时不需要
@
符号。类似地,用户输入不需要双反斜杠,因为它的解释方式与源代码不同。例如,如果您有一个名为
txtPath
的文本框,用户可以简单地键入
C:\some\path
,而不是像在源代码中通常需要的那样键入
C:\\some\\path
。在代码中读取该文本框的值时,可以使用:
stringpath=txtPath.Text
这与您有以下代码时相同:
stringpath=@“C:\some\path”
或者,相当于:

string path=“C:\\some\\path”

双反斜杠仅用于代码中的字符串文本。在内存中,字符串中只存储一个反斜杠,因此在处理内存中已有的字符串时不需要
@
符号。类似地,用户输入不需要双反斜杠,因为它的解释方式与源代码不同。例如,如果您有一个名为
txtPath
的文本框,用户可以简单地键入
C:\some\path
,而不是像在源代码中通常需要的那样键入
C:\\some\\path
。在代码中读取该文本框的值时,可以使用:
stringpath=txtPath.Text
这与您有以下代码时相同:
stringpath=@“C:\some\path”
或者,相当于:

string path=“C:\\some\\path”

仅澄清一下,
@
转义仅适用于源代码文本。来自其他地方的字符串(配置文件、数据库等)不需要它。directoryRoot@500-InternalServerError您是对的,出于某种原因,我假设必须将中的数据解析为双反斜杠。我想我没有太注意,谢谢。只是澄清一下,
@
转义只适用于源代码文本。来自其他地方的字符串(配置文件、数据库等)不需要它。directoryRoot@500-InternalServerError您是对的,出于某种原因,我假设必须将中的数据解析为双反斜杠。我想我没怎么注意,谢谢。