C# Language
Verbatim Strings
Szukaj…
Składnia
@ "ciągi ciągłe są ciągami, których treść nie jest poprzedzana znakami ucieczki, więc w tym przypadku \ n nie reprezentuje znaku nowej linii, lecz dwa pojedyncze znaki: \ i n. Ciągi ciągłe są poprzedzone zawartością ciągu znakiem @"
@ „Aby wstawić znaki cudzysłowu, używane są„ ”podwójne cudzysłowy” „”.
Uwagi
Aby połączyć literały łańcuchowe, użyj symbolu @ na początku każdego łańcucha.
var combinedString = @"\t means a tab" + @" and \n means a newline";
Ciągi wielowierszowe
var multiLine = @"This is a
multiline paragraph";
Wynik:
To jest
akapit wielowierszowy
Wersja demonstracyjna na żywo .NET Fiddle
Ciągi wielowierszowe, które zawierają podwójne cudzysłowy, mogą być również poprzedzane znakami ucieczki, tak jak w jednym wierszu, ponieważ są ciągami dosłownymi.
var multilineWithDoubleQuotes = @"I went to a city named
""San Diego""
during summer vacation.";
Wersja demonstracyjna na żywo .NET Fiddle
Należy zauważyć, że spacje / tabulacje na początku wierszy 2 i 3 są faktycznie obecne w wartości zmiennej; sprawdź to pytanie, aby znaleźć możliwe rozwiązania.
Uciekające podwójne cytaty
Cudzysłowy wewnątrz pełnych ciągów można uciec za pomocą 2 kolejnych cudzysłowów ""
reprezentować jeden podwójny cudzysłów "
w otrzymanej ciąg.
var str = @"""I don't think so,"" he said.";
Console.WriteLine(str);
Wynik:
„Nie wydaje mi się” - powiedział.
Wersja demonstracyjna na żywo .NET Fiddle
Interpolowane ciągi dosłowne
Pełne ciągi znaków można łączyć z nowymi funkcjami interpolacji ciągów, które można znaleźć w C # 6.
Console.WriteLine($@"Testing \n 1 2 {5 - 2}
New line");
Wynik:
Testowanie \ n 1 2 3
Nowa linia
Wersja demonstracyjna na żywo .NET Fiddle
Zgodnie z oczekiwaniami po dosłownym ciągu odwrotne ukośniki są ignorowane jako znaki specjalne. I zgodnie z oczekiwaniami po interpolowanym łańcuchu, każde wyrażenie w nawiasach klamrowych jest oceniane przed wstawieniem do łańcucha w tej pozycji.
Dosłowne ciągi instruują kompilator, aby nie używał znaków zmiany znaczenia
W normalnym ciągu znak odwrotnego ukośnika jest znakiem ucieczki, który instruuje kompilator, aby spojrzał na kolejne znaki w celu ustalenia rzeczywistego znaku w ciągu. ( Pełna lista ucieczek postaci )
W ciągach pełnych nie ma żadnych znaków zmiany znaczenia (z wyjątkiem ""
który zamienia się w "
). Aby użyć ciągów pełnych, wystarczy wstawić @
przed początkowymi cudzysłowami.
Ten ciąg dosłowny
var filename = @"c:\temp\newfile.txt"
Wynik:
c: \ temp \ newfile.txt
W przeciwieństwie do używania zwykłego (nieokreślonego) ciągu:
var filename = "c:\temp\newfile.txt"
które wygenerują:
c: emp
ewfile.txt
za pomocą ucieczki postaci. ( \t
jest zastąpione znakiem tabulacji, a \n
jest zastąpione znakiem nowej linii.)
Wersja demonstracyjna na żywo .NET Fiddle