将字符串添加到逐字字符串文字中

我有一个名为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 

这样做(首选):

 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 )并在之后附加结束引用( + "\"" )。

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

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

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

如果您尝试将“defaultPath”变量追加到最后,它将永远无法正常工作,因为您已经添加了结束"

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

 var randomText = "insert something"; var yourString = $@"A bunch of text in here that is on seperate lines but you want to {randomText }";