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:
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";
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";
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
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.
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