如何在路径字符串中使用双引号?

3
我有一个包含路径的字符串。
它看起来像这样:
TaskManager = "RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");"

我想使用这个字符串来编译代码,但是会出现一个错误,说“找不到 Software\Microsoft......”。有没有办法用另一个字符替换掉双引号?

TaskManager = RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Policies\System"); - VladL
2
如果它说找不到Software\Microsoft等等,问题不在引号上,而是他找不到software\microsoft\等等。 - Fabio Marcolini
实际的错误是什么? - It'sNotALie.
当我这样写时:TaskManager = "RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Policies\System");"; 我会得到未识别的转义序列错误。 - The Flash
用 "" 做这个根本行不通,它会提示缺少 12 个 }。 - The Flash
显示剩余4条评论
6个回答

2

我使用原样字符串字面量来表示路径,这样就不需要双倍反斜杠了:

TaskManager = @"RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey(""Software\Microsoft\Windows\CurrentVersion\Policies\System"");"

" 被翻译成两个 ""


在这种类型的字符串中,您不必将它们加倍。如果这样做,结果字符串将具有双反斜杠。 - Jerry
先生,现在我又遇到了一个问题。它之前可以运行,但现在不行了。我收到了这个错误信息:无效的表达式项“[”。 - The Flash
请提供您尝试使用的新字符串。 - Jerry

2

在字符串中使用 ",请使用 \"

String str= "my string with \"quotes\""; // my string with "quotes"

\字符用来在字符串中写入特殊字符,例如\ t在字符串中写入制表符,\n使字符串换行

或者

String str= @"my string with ""quotes"""; //same as before

在字符串前加上字符@可以让编译器将字符串按原样处理,每个特殊字符都可以直接书写而不必在它前面加上\,唯一需要转义的字符是双引号本身,需要用两个双引号 "" 来表示。

请注意,如果使用 @ 方法,则路径中的 \ \ 将变成 \。


当我执行以下代码时,出现了未识别的转义序列错误:TaskManager = "RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Policies\System");"; - The Flash
我想将这个字符串写入资源文本文件。该资源文本文件保存为一个字符串。我想用另一个字符串(请参见我上面发布的那个)替换此字符串中的/*line/*。包含编辑后资源的字符串将被编译。 - The Flash

0
如果您想要转义引号,可以尝试以下方法:
TaskManager = "RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey(\"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\");"

0

你可以这样使用它

TaskManager = "RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey('Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System');"

0
TaskManager = "RegistryKey objRegistryKey = Registry.CurrentUser.CreateSubKey(\"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\");"

那应该解决了。


0
使用“\”来获取双引号,就像你使用“\”来获取反斜杠一样。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接