将 @ 符号用于目录,因此不需要两个反斜杠
本文关键字:两个 不需要 用于 符号 | 更新日期: 2023-09-27 18:33:24
这看起来很简单,但经过研究,我无法找到如何在目录中使用 @ 符号来防止它必须是反斜杠。
一个例子是
DirectoryInfo folderInfo = new DirectoryInfo(@"C:'");
但是在我的应用程序中,目录将是动态的,所以我无法执行此操作:
DirectoryInfo folderInfo = new DirectoryInfo(@Globals.directoryRoute);
所以我想知道将@
符号放在字符串之前的正确方法是什么。
Globals.directoryRoute
设置为C:'
但用户可以更改此输入,因此我希望不必解析每个双反斜杠,我可以使用它来制作它,因此只需要一个反斜杠。
这是一种有效的方法,还是我应该解析一下每秒的反斜杠?
@ 前缀是一种工具,用于告诉编译器不要将反斜杠作为以下字符串中的转义字符。如果在运行时输入字符串,则无需担心。因此,您可以按原样使用Globals.directoryRoute
的内容。
只有代码中的字符串文本才需要双反斜杠。在内存中,字符串中仅存储一个反斜杠,因此在处理内存中已有的字符串时不需要@
符号。同样,用户输入不需要双反斜杠,因为它的解释方式与源代码不同。例如,如果你有一个名为 txtPath
的文本框,用户可以简单地键入 C:'some'path
,而不是像通常在源代码中需要的那样C:''some''path
。在代码中读取该文本框的值时,只需使用:string path = txtPath.Text;
这将与您具有以下代码相同:string path = @"C:'some'path";
或者,等效地:
string path = "C:''some''path";