2012-05-10 3 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

Welcome Back, возражаешь, если я постараюсь помочь вам снова ... Это звучит, как мы продолжаем от вчера я исправлю? –

+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 }"; 
Смежные вопросы