Ters eğik çizgi içeren yol dizesi için tanınmayan kaçış dizisi


93

Aşağıdaki kod, her ters eğik çizgi için "tanınmayan bir çıkış sırası" hakkında bir derleyici hatası oluşturur:

string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

Sanırım ters eğik çizgiden kaçmam gerekiyor? Bunu nasıl yaparım?

Yanıtlar:


227

Her seferinde çift ters eğik çizgi kullanabilirsiniz

string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

veya @ sembolünü kullanın

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

Bu ayrıca yaşadığım bir Html.TextBoxFor sorununun çözülmesine yardımcı oldu. Normal ifadeden önce @ kullanılması, çift ters eğik çizginin başarısız olduğu Tanınmayan çıkış sırasını çözdü.
— Joshua

29

Bunu dene:

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

Sorun, bir dizede a'nın \bir kaçış karakteri olmasıdır. @İşareti kullanarak, derleyiciye kaçış karakterlerini yok saymasını söylersiniz.

Ayrıca şunlardan kaçarak da geçebilirsiniz \:

string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

4
FWIW ve Googlebot’a yardımcı olmak için @ "" terimi "kelimesi kelimesine dizgi" dir. Bunun sadece "dizgi değişmezi" olarak adlandırıldığını da duymuş olsam da, teknik olarak "normal dizge" "" yi içerir. msdn.microsoft.com/en-us/library/aa691090(VS.71).aspx
— Mark Brackett

13
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

Küçük bir notta, bir "daha sonra" "gibi
— kaçar

9

Dizeniz, örneğinizde olduğu gibi bir dosya yoluysa, Unix stili dosya yollarını da kullanabilirsiniz:

string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";

Ancak diğer yanıtların C # 'da dizeden kaçan daha genel çözümleri vardır.


5
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

Bu işe yarayacak veya önceki örnekler de işe yarayacak. @ "...", tırnak işaretleri arasındaki her şeyi gerçek anlamıyla ele almak anlamına gelir, böylece

@"Hello
world"

Gerçek bir satırsonu eklemek için. Ben daha eski kafalıyım ve "\" ile "\\" ile kaçmayı tercih ederim


Ama çifte "kelimenin tam anlamıyla ele
— alınmaz
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.