2012-05-10 186 views
2

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

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

我试图添加+ defaultPath来替换数据。因此,可以说我有一个文件夹的名字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 
+0

欢迎回来,介意我再次尝试帮你......这听起来像我们持续我昨天是否正确? –

+1

你为什么不救你的眼睛?创建一个函数QuoteString()并以任何你喜欢的方式连接它们... –

+0

哈哈是啊,非常多!尽管昨天晚上我取得了很好的进展! – heinst

回答

7

做这样的(优选的):

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)并在后面追加结束报价(+ "\"")。

+0

工作。你能向我解释一下吗? – heinst

+0

@heinst:更新了答案。你能理解这个吗? –

+0

我试图做第二个答案....我只是没有添加第二个\ ....为什么你添加?除此之外,它们都有意义 – heinst

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”变量,它将无法正常工作,因为您已经添加了关闭"

2

所以,如果你想利用字符串插值的优势与C#6你也可以做

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