繁体   English   中英

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

[英]Adding a string to the verbatim string literal

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM