簡體   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