2012-05-10 183 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 }";