8

我有一个名为 defaultPath 的路径,我想将它添加到这个逐字字符串文字中,但可以得到它周围的引号。

    @"""C:\Mavro\MavBridge\Server\MavBridgeService.exe"" /service /data ""..\Data"""

我试图添加 +defaultPath 来替换 Data。所以假设我有一个文件夹名称 Data.Apple 我希望输出为

   "C:\Mavro\MavBridge\Server\MavBridgeService.exe" /service /data "..\Data.Apple"

但是当我在过去的半个小时里一直这样做时,我得到了

   "C:\Mavro\MavBridge\Server\MavBridgeService.exe" /service /data "..\"Data.Apple

或者

   "C:\Mavro\MavBridge\Server\MavBridgeService.exe" /service /data "..\" + defaultPath
4

3 回答 3

13

这样做(首选):

string.Format(@"""C:\Mavro\MavBridge\Server\MavBridgeService.exe"" /service /data ""..\{0}""", defaultPath);

或者像这样:

@"""C:\Mavro\MavBridge\Server\MavBridgeService.exe"" /service /data ""..\" + defaultPath + "\"";

第一个使用string.Format,它基本上将第一个参数中的 {0} 替换为第二个参数中的值并返回结果。

第二个使用经典的字符串连接,我所做的是删除最后一个反斜杠(""..\而不是""..\"")之后的双引号,因为你不想要反斜杠之后的引号。你想要后面的引号defaultPath。这就是这段代码的作用:它附加defaultPath( " + defaultPath) 并在之后附加结束引号 ( + "\"")。

于 2012-05-10T15:44:16.110 回答
8

因此,如果您想利用 c# 6 的字符串插值,您也可以这样做

var randomText = "insert something";
var yourString = $@"A bunch of text in here 
that is on seperate lines
but you want to {randomText }";
于 2016-03-10T16:02:18.733 回答
3

使用 string.Format 在引号之间插入变量:

string path = "Data.Apple";
string verbatim = string.Format(@"""C:\Mavro\MavBridge\Server\MavBridgeService.exe"" /service /data ""{0}""", path);
MessageBox.Show(verbatim);

它使阅读和实现更容易,您可以以类似的方式将路径的其他部分替换为可变部分。

如果您尝试仅将“defaultPath”变量附加到末尾,它将永远无法正常工作,因为您已经添加了结尾".

于 2012-05-10T15:49:21.193 回答