C # 6에서 문자열 보간과 함께 이스케이프 문자를 사용하는 방법은 무엇입니까?
나는 문자열 보간을 사용하고 그것을 좋아했지만 출력에 백 슬래시를 포함하려고 시도했지만 작동하지 못하는 문제가 있습니다.
내가 원하는 건 이런거 ..
var domain = "mydomain";
var userName = "myUserName";
var combo = $"{domain}\{userName}"
콤보의 출력이
myDomain\myUserName
내가 얻는 것은 \ 이스케이프 문자라는 구문 오류입니다. \\를 입력하면 구문 오류가 사라지지만 출력은 myDomain \\ myUsername입니다.
보간 된 문자열에 이스케이프 문자를 어떻게 포함시킬 수 있습니까?
백 슬래시 ( \
)로 이스케이프 하면 중괄호를 제외한 모든 문자에서 작동합니다.
당신이 중괄호를 탈출하려고 (경우 {
또는 }
)을 사용해야합니다 {{
또는 }}
당 https://msdn.microsoft.com/en-us/library/dn961160.aspx .
... 모든 이중 중괄호 ( "{{"및 "}}")는 단일 중괄호로 변환됩니다.
$ @를 모두 사용하여이를 수행 할 수 있습니다. 순서가 중요합니다.
var combo = $@"{domain}\{userName}";
$"{domain}\\{user}"
잘 작동합니다. 이스케이프는 평소처럼 작동합니다 (이스케이프 할 때 제외 {
). 적어도 .NET 4.6 및 VS 14.0.22823 D14REL에서.
어떤 이유로 작동하지 않는 경우 (아마도 이전 버전의 컴파일러를 사용하고 있습니까?) 더 명시 적으로 시도 할 수도 있습니다.
$"{domain}{@"\"}{user}"
안녕하세요, 보간 된 문자열에서 백 슬래시를 이스케이프하는 규칙은 백 슬래시와 중복됩니다.
var domain = "mydomain";
var userName = "myUserName";
var combo = $"{domain}\\{userName}";
그러나 보간 된 문자열을 축어 문자열로 사용하는 경우 백 슬래시를 이스케이프 할 필요가 없습니다.
var domain = "mydomain";
var userName = "myUserName";
var combo = $@"{domain}\{userName}";
그리고 당신은 같은 것을 얻습니다.
보간 된 문자열에 대한 자습서 : 비디오 보간 된 문자열 참조
Eduardo가 맞습니다. 두 배로 늘려 중괄호를 이스케이프합니다. 따라서 도메인 변수를 {mydomain}으로 출력하려면 다음을 수행해야합니다.
$"{{{domain}}}";
또한 현재 날짜가 2016 년 9 월 1 일이라고 가정하면 다음과 같이됩니다.
$"The date is {DateTime.Now}";
현지화에 따라 "날짜는 2016/09/01 3:04:48 PM"과 같은 결과가 출력됩니다. 다음을 수행하여 날짜 형식을 지정할 수도 있습니다.
$"The date is {DateTime.Now : MMMM dd, yyyy}";
그러면 "The date is September 1, 2016"이 출력됩니다. 보간 된 문자열은 훨씬 더 읽기 쉽습니다. 좋은 대답 Eduardo.
내가 이해하지 않았다면. 해결책은 정말 간단합니다
var domain = "mydomain";
var userName = "myUserName";
var combo = $"{{{domain}}}\\{{{userName}}}";
Console.WriteLine(combo);
나는 거기에 제공된 좋은 참조뿐만 아니라 birdamongmen 답변을 공유합니다. 도움이되기를 바랍니다. 내 5 센트
'Nice programing' 카테고리의 다른 글
프로그램 종료 전에 작업 수행 (0) | 2020.10.18 |
---|---|
특정 클래스의 div를 감지하는 jquery가 DOM에 추가되었습니다. (0) | 2020.10.18 |
AutoMapper.Mapper에 CreateMap에 대한 정의가 없습니다. (0) | 2020.10.18 |
콜백 함수를 실행할 때 Angular2 구성 요소의 "this"가 정의되지 않았습니다. (0) | 2020.10.18 |
.NET Framework에서 람다와 대리자의 차이점은 무엇입니까? (0) | 2020.10.18 |