2011-03-03 16 views

cevap

86

Dosya yolu ile ilgisi yoktur. Dizelerin kaçan davranışını değiştirir.

@ ile önceden yazılmış bir dizgede, \ ile başlayan çıkış dizileri devre dışı bırakılır. Bu, \ yol ayırıcısı olduğundan ve bir çıkış dizisi başlatmasını istemediğinizden, dosya yolları için uygundur.

Normal bir dizede, \\ içine \'dan kurtulmak gerekir, böylece örneğiniz bu "pdf \\" gibi görünecektir. Ancak, @ ile öncelenmesi gereken tek karakter, " ("" olarak kaçtı) ve \ yalnızca görünebilir.

Bu özellik, dosya yolları veya normal ifadeler gibi \ içeren dizeler için uygun bir özelliktir.

Basit örneğiniz için kazanç o kadar büyük değil, ancak tam yolunuz var "C:\\ABC\\CDE\\DEF" sonra @"C:\ABC\CDE\DEF" çok daha güzel görünüyor.

Düzenli ifadeler için neredeyse bir zorunluluktur. Bir normal ifade, genellikle diğer karakterlerden kaçan birkaç \ içerir ve bunlardan kaçmanız gerektiğinde neredeyse okunamaz hale gelir.

+0

Peki bu nasıl değiştirir? – Sally

+1

@Sally '@ '' i kaldırdıktan sonra kodunuzu çalıştırmayı deneyin ve farkı görün! – Mayank

+3

Alternatif olarak, 'Path' sınıfı dosya sistemi yolları için de uygundur. –

6

onu senin kaçan olmadan ters eğik çizgi (\) girmek için izin verir:

var s1 = "C:\\Temp\\MyFileName"; 
var s2 = @"C:\Temp\MyFileName"; 

Hem sonuç aynı içerikli bir dizede (ve dizeleri derleme zamanında interned olduğundan, belki de aynı dize referans).

26

verbatim string literal'dur. Bu onlarsız tersbölüleri ve hatta linebreaks içerecek şekilde dize verir

farklı ele ediliyor:

ters eğik çizgi dize içine bir çift tırnak ekleme kaçmak için kullanılmaz gibi
string multiLineString = @"First line 
second line 
third line"; 

iki katına çıkarılması gerektiriyorsa:

string withQuote = @"before""after"; 

Verbatim dize değişmezleri, genellikle her ikisi de sık sık ters eğik çizgi kullanan dosya yolları (gösterdiğiniz gibi) ve normal ifadeler için kullanılır.

Daha fazla bilgi için article on strings numaralı telefonuma bakın.

İlgili konular