C#:ssa "Escape" ja "Unescape" viittaavat prosessiin, jossa merkkijonoissa olevat merkit, joilla muuten olisi erityismerkitys, muunnetaan literaalimuotoonsa (escaping) ja päinvastoin (unescape).
Escape: Sisältää erityisten merkkijonojen (esim. \n, \t, \\) käyttöä sellaisten merkkien esittämiseen, jotka eivät ole tulostettavissa tai joilla on erityismerkitys C#-merkkijonoissa.
Unescape: Sisältää näiden koodinvaihtomerkkijonojen muuntamisen takaisin alkuperäiseen, literaalimuotoonsa.
Esimerkiksi koodinvaihtomerkkijono \n edustaa uutta riviä merkkijonossa, kun taas \\ edustaa literaalista kenoviivaa.
The Tärkein syy käyttää escape/unescape-funktioita C#:ssa on merkkijonojen merkkien käsittely, jotka:
Muuten olisivat ristiriidassa syntaksin kanssa: Lainausmerkit, kenoviivat tai rivinvaihdot rikkoisivat merkkijonon muotoilun, joten ne on vaihdettava koodinvaihtomerkillä.
Ne on esitettävä kirjaimellisesti: Voit esimerkiksi sisällyttää rivinvaihdon merkkijonoon tai varmistaa, että kenoviivat näkyvät osana merkkijonoa.
Vuorovaikutus ulkoisten järjestelmien tai muotojen kanssa: Kun käsitellään JSON-, XML- tai URL-osoitteita, escape- ja unescape-funktiot auttavat varmistamaan, että merkkijonotiedot on muotoiltu oikein.
Escape:
Kun merkkijonoon on lisättävä erikoismerkkejä, kuten rivinvaihtoja tai sarkainmerkkejä.
Kun käsitellään säännöllisiä lausekkeita, joissa merkeillä, kuten *, ? tai +, on erityismerkityksiä.
Kun käsitellään tiedostopolkuja, URL-osoitteita tai JSON-merkkijonoja, joissa tietyt merkit on erotettava koodista.
Unescape:
Kun luetaan tai käsitellään tietoja, jotka sisältävät koodinvaihtomerkkejä, kuten käyttäjän syötteitä, URL-osoitteita tai JSON-tietoja.
Kun muunnetaan koodinvaihtomerkkejä sisältäviä merkkijonoja takaisin literaalimuotoonsa, esimerkiksi web-kehityksessä (esim. HTML-entiteettien dekoodaus).
Kun käsitellään tiedostoja polut ja data, jotka vaativat dekoodauksen ennen kuin niitä voidaan käyttää oikein.