Bir dizede çift tırnak işareti


173

Çift tırnak işaretleri şu şekilde kaçabilir:

string test = @"He said to me, ""Hello World"". How are you?";

Ancak bu, "dizeye karakter eklemeyi içerir . Dizede herhangi bir değişiklik gerekmemesi için çift tırnaklardan kaçmak için bir C # işlevi veya başka bir yöntem var mı?


5
\ "Merhaba Dünya \"

1
Sonuç olarak gerçekten ne istiyorsun? Değişmez bir dizede "" olur "
Roel

C / C ++ için benzer bir soru (bu, en iyi arama motoru isabeti olabilir): Bir dizgi değişmezine nasıl çift tırnak alabilirim?
Peter Mortensen

Yanıtlar:


226

Hayır.

Ya sizin gibi kelimesi kelimesine dizgi değişmezleri kullanın ya da "ters eğik çizgi kullanarak kaçın .

string test = "He said to me, \"Hello World\" . How are you?";

Tek orada - dize her iki durumda da değişmedi kaçan " o. Bu sadece C # 'a karakterin bir dize sonlandırıcı değil, dizenin bir parçası olduğunu söylemenin bir yoludur.


81

Ters eğik çizgiyi her iki şekilde de kullanabilirsiniz;

string str = "He said to me, \"Hello World\". How are you?";

Yazdırır;

He said to me, "Hello World". How are you?

tam olarak aynı baskı ile;

string str = @"He said to me, ""Hello World"". How are you?";

İşte bir DEMO.

" hala dizenizin bir parçası.

Göz atın Escape Sequencesve String literalsMSDN'den.


18

C # 'da dizeye özel karakterler koymak için ters eğik çizgiyi kullanabilirsiniz. Örneğin, ", \" yazmanız gerekir. Ters eğik çizgi kullanarak yazdığınız birçok karakter var: Bir eğik çizgi ile ters eğik çizgi:

  • \ 000 boş
  • \ 010 geri tuşu
  • \ 011 yatay sekme
  • \ 012 yeni satır
  • \ 015 satır başı
  • \ 032 yedek
  • \ 042 çift tırnak
  • \ 047 tek tırnak
  • \ 134 ters eğik çizgi
  • \ 140 mezar aksanı

Diğer karakteri ile ters eğik çizgi

  • \ a Bell (uyarı)
  • \ b Geri al
  • \ f Formfeed
  • \ n Yeni satır
  • Taşıma dönüşü
  • \ t Yatay sekme
  • \ v Dikey sekme
  • \ 'Tek tırnak işareti
  • \ "Çift tırnak işareti
  • \ Ters eğik çizgi
  • \? Değişmez soru işareti
  • Sekizli gösterimde \ ooo ASCII karakteri
  • \ x hh Onaltılık gösterimde ASCII karakteri
  • \ x hhhh Bu çıkış dizisi geniş karakterli bir sabitte veya bir Unicode dizgi değişmezinde kullanılıyorsa, onaltılı gösterimdeki Unicode karakter. Örneğin, WCHAR f = L '\ x4e00' veya WCHAR b [] = L "Birinin Çince karakteri \ x4e00".

6

Kaçış yanlış anlaşılıyor.

Ek "karakterler karakter dizisinin bir parçasıdır; derleyici tarafından tek olarak yorumlanır ".

Dizenizin gerçek değeri He said to me , "Hello World".How are you ?, çalışma zamanında yazdırıp yazdırmayacağınızı göreceğiniz gibi , yine de .


4

Lütfen sorununuzu açıklayın. Diyorsun:

Ancak bu karakter dizgiye "karakteri eklemeyi içerir.

Ne sorunu bu? Sen yazamaz string foo = "Foo"bar"";bir derleme hatası çağırmak olacak, çünkü. Ekleme bölümüne gelince , doğru olmayan dize boyutu terimleriyle:

@"""".Length == "\"".Length == 1
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.