2011-04-04 14 views
20

Ben bir süreç olarak yürütmek istiyorum aşağıdaki dize, adres:İçinde tırnak işaretleri içeren bir dize nasıl kullanılır?

Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m "SHARP MX-5500N PS" /h "Windows NT x86" /v 3 /f sn0hwenu.inf Ancak

, tırnak varlığı göz önüne alındığında, bunun derlemek yapmak için C# Bu dizeyi ekleyemezsiniz tutarak tüm orijinal yapı. Bunu nasıl düzeltmeliyim? Dize içinde tırnak işaretleri olduğundan biraz zor.

+4

Kullanım \ "kaçmak için". – Lloyd

+0

@Lloyd => yanıt. –

+0

Yup, buna 'kaçma' denir ve genellikle söz konusu karakteri ters eğik çizgi (\) ile öncelersiniz. –

cevap

3
string s = "Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m \"SHARP MX-5500N PS\" /h \"Windows NT x86\" /v 3 /f sn0hwenu.inf"; 
2

Eğer kaçış \ kullanılarak tırnak işareti var. diyen bir dize olması: Hello "World" Eğer "Hello\"World\""

8

Sen dize tanımında önünde @ koyabilirsiniz yazmak ve koymalıyız iki ":

string myString = @"Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m ""SHARP MX-5500N PS"" /h ""Windows NT x86"" /v 3 /f sn0hwenu.inf" 

bu makaledeki dizeleri karakterleri kaçan hakkında daha fazla bilgi bulabilirsiniz :

http://www.yoda.arachsys.com/csharp/strings.html

28
string whatever = "Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m \"SHARP MX-5500N PS\" /h \"Windows NT x86\" /v 3 /f sn0hwenu.inf"; 

veya

string whatever = @"Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m ""SHARP MX-5500N PS"" /h ""Windows NT x86"" /v 3 /f sn0hwenu.inf"; 
+0

-1 Birisi beni sevmiyor, sanırım (sadece bir düşüş var). – rsenna

0

Ayrıca, her zaman Convert.ToChar (34), 34'ü ASCII olarak kullanabilirsiniz. eg

:

gitInfo.Arguments = @"commit * " + "-m" + Convert.ToChar(34) + messBox.Text + Convert.ToChar(34); 

eşittir:

commit * -m "messBox.Text"; 
İlgili konular