원시 문자열 리터럴 텍스트 - 문자열 리터럴의
원시 문자열 리터럴은 세 개의 큰따옴표(") 문자로 시작하고 끝납니다.
var singleLine = """This is a "raw string literal". It can contain characters like \, ' and ".""";
원시 문자열 리터럴은 여러 줄에 걸쳐 있습니다.
var xml = """
<element attr="content">
<body>
</body>
</element>
""";
다음 규칙은 여러 줄 원시 문자열 리터럴의 해석을 제어합니다.
- 여는 따옴표는 줄의 마지막 공백이 아닌 문자여야 하며, 닫는 따옴표는 줄의 첫 번째 공백이 아닌 문자여야 합니다.
- 닫는 따옴표 왼쪽의 공백은 원시 문자열 리터럴의 모든 줄에서 제거됩니다.
- 같은 줄의 여는 따옴표 다음에 나오는 공백은 무시됩니다.
- 여는 따옴표 뒤의 공백만 문자열 리터럴에 포함됩니다.
- 공백이 같은 줄의 끝 구분 기호 앞에 있으면 각 콘텐츠 줄의 시작 부분에 공백과 탭과 같은 정확한 공백 문자 수와 종류가 있어야 합니다. 특히 공백은 가로 탭과 일치하지 않으며 그 반대의 경우도 마찬가지입니다.
- 닫는 따옴표 앞의 줄 바꿈은 리터럴 문자열에 포함되지 않습니다.
팁 (조언)
Visual Studio 및 C# Dev Kit는 원시 문자열 리터럴에 JSON 데이터 또는 정규식이 포함될 때 몇 가지 유효성 검사 및 구문 강조 표시를 제공합니다.
도구는 텍스트를 구문 분석합니다. 도구에서 텍스트가 JSON 또는 정규식을 나타낸다는 확신이 있는 경우 편집기에서 구문 색 지정을 제공합니다.
형식을 나타내는 선언 위에 주석을 추가하여 해당 환경을 개선할 수 있습니다.
-
// lang=json는 원시 문자열 리터럴이 JSON 데이터를 나타냅니다. -
// lang=regex는 정규식을 나타내는 원시 문자열 리터럴을 나타냅니다.
원시 문자열 리터럴이 매개 변수가 형식을 나타내는 데 사용하는 System.Diagnostics.CodeAnalysis.StringSyntaxAttribute 인수로 사용되는 경우 이러한 도구는 일부 형식 형식에 대한 원시 문자열 리터럴의 유효성을 검사합니다. JSON 및 regex가 모두 지원됩니다.
일부 형식의 경우 주석 또는 특성을 사용하면 코드 제안이 형식에 따라 문자열 리터럴에 대한 수정 사항을 제공할 수 있습니다.
세 개 이상의 연속 큰따옴표 문자가 있는 원시 문자열 리터럴을 만들어야 할 수 있습니다. 원시 문자열 리터럴은 세 개 이상의 큰따옴표 문자 시퀀스로 시작하고 끝날 수 있습니다. 문자열 리터럴에 세 개의 연속 큰따옴표가 포함된 경우 원시 문자열 리터럴을 시작하고 네 개의 큰따옴표 문자로 끝납니다.
var moreQuotes = """" As you can see,"""Raw string literals""" can start and end with more than three double-quotes when needed."""";
따옴표 문자로 원시 문자열 리터럴을 시작하거나 끝내야 하는 경우 여러 줄 형식을 사용합니다.
var MultiLineQuotes = """"
"""Raw string literals""" can start and end with more than three double-quotes when needed.
"""";
원시 문자열 리터럴을 보간된 문자열과 결합하여 출력 문자열에 { 및 } 문자를 포함할 수도 있습니다. 보간된 원시 문자열 리터럴에서 여러 $ 문자를 사용하여 { 및 } 문자를 이스케이프하지 않고 출력 문자열에 포함합니다.
원시 문자열 리터럴의 콘텐츠에는 길이가 원시 문자열 리터럴 구분 기호 길이보다 크거나 같은 연속 " 문자 집합이 포함되어서는 안 됩니다. 예를 들어 """" """ """" 및 """"""" """""" """"" """" """ """"""" 문자열은 잘 구성되었습니다. 그러나 """ """ """ 및 """ """" """ 문자열은 잘못 구성되었습니다.
참고 항목
.NET