기존 코드베이스의 문자열 형식 호출에 적용 할 때 문자열 보간이 실제로 좋지만 일반적으로 선호되는 열 제한을 고려하면 문자열이 한 줄에 비해 너무 길어집니다. 특히 보간되는 표현식이 복잡한 경우. 형식 문자열을 사용하면 여러 줄로 나눌 수있는 변수 목록이 있습니다.
var str = string.Format("some text {0} more text {1}",
obj1.property,
obj2.property);
누구 든지이 선을 깨는 선호하는 수단이 있습니까?
나는 당신이 다음과 같은 것을 할 수 있다고 생각합니다 :
var str = $"some text { obj1.property }" +
" more text { obj2.property };
답변
당신은 수있는 여러 라인으로 라인을 중단,하지만 난 더 이상 구문 외모의 좋은 말을하지 않을 것입니다.
$@
보간 된 그대로의 문자열 을 사용하려면 구문을 사용해야 하며 다음 {...}
과 같이 매개 변수 안에 개행을 넣을 수 있습니다 .
string s = $@"This is all {
10
} going to be one long {
DateTime.Now
} line.";
위의 문자열에는 줄 바꿈이 없으며 실제로 다음과 같은 내용이 있습니다.
이것은 모두 10 개의 긴 01.08.2015 23.49.47 라인이 될 것입니다.
(참고, 노르웨이어 형식)
이제, 나는 사용을 중단하지 않을 것이라고 말했다 string.Format
. 제 생각에는 이러한 문자열 보간 표현식 중 일부는 실제로 좋아 보이지만 더 복잡한 표현식은 읽기가 매우 어려워지기 시작합니다. 를 사용하지 않으면 FormattableString
코드가 String.Format
어쨌든 호출로 컴파일 된다는 것을 고려할 때 , 나는 String.Format
그것이 의미 가 있는 곳으로 계속 가야한다고 말합니다 .
답변
문자열 보간과 여러 줄 문자열 리터럴을 얻기 위해 결합 $
하고 @
함께 사용할 수 있습니다 .
var str = $@"some text { obj1.property }
more text { obj2.property }";
그러나 그 NewLine
사이에 캐릭터가 생길 것이므로 원하는 것이 아닐 수도 있습니다.
답변
OP가 다른 것을 요구했지만이 질문을 읽는 많은 사람들이 다음과 같이 $""
작동 하는 멀티 라인 보간 을 원할 것으로 기대 합니다 @""
. 그렇게하려면$@""
$@"Height: {height}
Width: {width}
Background: {background}"
답변
이거 야:
var str = $"some text { obj1.property }" +
$" more text { obj2.property }";
두 번째 주 $
의를$"..." + $"..."
답변
재정의 된 ToString () 내에서 StringBuilder를 예로 사용했습니다.
// return employee data
public override string ToString()
{
StringBuilder buffer = new StringBuilder();
buffer.AppendLine($"Number: {EmployeeNumber}");
buffer.AppendLine($"Name: {EmployeeName}");
buffer.AppendLine($"Address: {PostalAddress}");
buffer.AppendLine($"Phone: {PhoneNumber}");
buffer.AppendLine($"Age: {EmployeeAge}");
buffer.AppendLine($"Gender: {EmployeeGender}");
buffer.AppendLine($"Status: {EmployeeStatus}");
buffer.AppendLine($"Manager: {EmployeeManager}");
buffer.AppendLine($"Start: {EmployeeStartDate.ToShortDateString()}");
return buffer.ToString();
}
답변
