Stránka 1 z 1

Verbatim řetězce (Verbatim string) - Co to je?

PříspěvekNapsal: 23 duben 2012 03:35:17
od Wlezley
Možná jste si všimli, že v některých mých příkladech používám u řetězců obsahujících například cestu k souborům, takový zvláštní zápis se zavináčem @ před uvozovkami řetězce. Tomuto typu řetězce se říká verbatim řetězec, nebo-li verbatim string. Vypadá to například takhle:
Kód: Vybrat vše
string cestaKeSlozce = @"C:\Users\Public\Videos\";

Kdybych tam ten zavináč nenapsal, šlo by o klasický řetězec a musel by jeho zápis vypadat takto:
Kód: Vybrat vše
string cestaKeSlozce = "C:\\Users\\Public\\Videos\\";

Vidíte ten rozdíl? Proč se zdržovat zdvojováním escape znaků zpětných lomítek (tzv. backslash) například u cest, když můžu použít verbatim string a ušetřit si práci, že? :thumbup1:

Teď si blíže řekneme o tom, jak to vlastně funguje a co všechno od verbatim řetězců můžete čekat. Verbatim řetězec ignoruje všechny escape sekvence které znáte z klasických řetězců. Používá se zpravidla tehdy, kdy potřebujeme napsat nějaký dlouhý řetězec, který by obsahoval spoustu escape sekvencí. Samozdřejmně by to šlo zapsat i do klasických řetězců, jak jsem již zmiňoval, ale byla by to celkem zbytečná práce navíc.

POZOR!
Protože verbatim řetežce ignorují escapování klasických stringů, vždy se ukončují uvozovkami ". To znamená, že normální escape sekvence pro uvozovky \" bude ignorována, verbatim strig by se tímto ukončil a poslední zapsaný znak v něm by byl \ (backslash). Pokud tedy chceme napsat ve verbatim stringu uvozovky " musíme je takto zdvojit "" - to je jediná escape sekvence, kterou lze ve verbatim řetězcích použít. :tongue_ss:

Re: Verbatim řetězce (Verbatim string) - Co to je?

PříspěvekNapsal: 23 duben 2012 20:20:05
od Wlezley
Ještě mě tak teď napadla jedna věc, která by Vás mohla zajímat a může se hodit.
S verbatim stringem totiž můžete udělat například i tohle:
RAW CODE
string abc = @"radek jedna
radek dva
radek tri
radek ctyri
radek pet";
...což u klasického stringu nejde. :tongue_ss: