c# - Jak mohu napsat zpětné lomítko (\) v řetězci?

Translate

Chci něco takového napsatC:\Users\UserName\Documents\Tasksvtextbox:

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";

Zobrazuje se mi chyba:

Nerozpoznaná úniková sekvence.

Jak mohu napsat zpětné lomítko do řetězce?

This question and all comments follow the "Attribution Required."

Všechny odpovědi

Translate

Zpětné lomítko ("\") znak je speciální únikový znak používaný k označení dalších speciálních znaků, jako jsou nové řádky (\n), záložky (\t) nebo uvozovky (\").

Chcete-li zahrnout samotný znak zpětného lomítka, potřebujete dvě zpětná lomítka nebo použijte znak@doslovný řetězec:

var s = "\\Tasks";
// or 
var s = @"\Tasks";

ČístDokumentace MSDN / specifikace C #který popisuje znaky, které unikly pomocí znaku zpětného lomítka a použití doslovného řetězcového literálu.

Obvykleřečeno, většina vývojářů C # .NET má tendenci upřednostňovat používání@doslovné řetězce při vytváření cest k souborům / složkám, protože jim to ušetří nutnost neustále psát dvojitá zpětná lomítka a mohou přímo kopírovat / vkládat cestu, takže bych navrhl, abyste si zvykli dělat totéž.


To vše znamená, že v tomto případě bych vám vlastně doporučil použítPath.Combineužitná metoda jako v@ lordkainova odpověďprotože si pak nemusíte dělat starosti s tím, zda jsou zpětná lomítka již zahrnuta v cestách a náhodně zdvojnásobí lomítka nebo je úplně vynecháte při kombinování částí cest.

Zdroj
Translate

Chcete-li uniknout zpětnému lomítku, jednoduše použijte 2 z nich, například takto:\\

Pokud potřebujete uniknout jiným věcem, může to být užitečné..

Zdroj
Translate

K tomu je vytvořena speciální funkcePath.Combine ()

var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");
Zdroj
Translate

Předchozí odpověď je správná, ale v tomto konkrétním případě bych doporučil použítSystem.IO.Path.Combinemetoda.

Více podrobností naleznete zde:http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx

Zdroj
Nil
Translate
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\\Tasks";

Vložte dvojité zpětné lomítko místo jednoho zpětného lomítka ...

Zdroj
Translate

Jen unikněte"\"pomocí +"\\Tasks"nebo použijte doslovný řetězec jako@"\Tasks"

Zdroj
Translate

i když je tento příspěvek docela starý, zkusil jsem něco, co pro můj případ fungovalo.

Chtěl jsem vytvořit proměnnou řetězce s hodnotou níže:

21541_12_1_13\":null

takže můj přístup byl takový:

  • vytvořte řetězec doslovně

    string substring = @ "21541_12_1_13 \" ": null";

  • a poté odstraňte nežádoucí zpětná lomítka pomocí funkce Odebrat

    string newsubstring = substring.Remove (13, 1);

Doufám, že to pomůže. Na zdraví

Zdroj
Leave a Reply
You must be logged in to post a answer.
O autorovi