이 자습서에서는 서식이 지정된 순서 요약을 인쇄하는 작은 파일 기반 앱을 빌드합니다. 그 과정에서 문자열 보간 을 적용하여 값을 텍스트에 삽입하고, 숫자와 통화에 서식을 지정하고, 열을 정렬하고, 문화권별 출력을 생성합니다.
이 자습서에서는 기본 C# 개념에 익숙하다고 가정합니다. 보간 구문의 기능별 참조는 문자열 보간을 참조하세요.
필수 조건
- .NET 10 SDK 이상 버전입니다. 파일 기반 앱에는 .NET 10 이상이 필요합니다.
- 코드 편집기(예: Visual Studio Code)
앱 만들기
파일 기반 앱은 프로젝트 파일 없이 실행하는 단일 .cs 파일입니다. 앱에 대한 폴더를 만들고 앱으로 이동합니다.
mkdir StringInterpolation
cd StringInterpolation
해당 폴더에 report.cs 빈 파일을 만들고 편집기에서 엽니다. 다음 섹션에서 코드를 추가하고 앱을 실행합니다 dotnet run report.cs.
텍스트에 값 삽입
문자열 리터럴 앞에 $를 붙여 보간된 문자열로 만듭니다. 문자열 안에 C# 식을 중괄호(및 {);)}에 넣습니다. C#은 식을 평가하고 결과를 문자열로 변환한 다음 삽입합니다.
다음 코드를 report.cs에 추가한 다음 dotnet run report.cs로 앱을 실행합니다.
string name = "Maria";
int itemCount = 3;
// Prefix a string literal with $ to interpolate expressions inside braces.
Console.WriteLine($"Hello, {name}! You have {itemCount} items in your cart.");
// => Hello, Maria! You have 3 items in your cart.
결과는 리터럴 텍스트와 name 및 itemCount의 값을 결합합니다.
숫자 및 통화 서식 지정
주문 요약에는 돈과 요금이 표시되므로 원시 번호는 23.50.08 미완성이고 읽기 어려워 보입니다. 통화 기호가 있는 가격과 세율을 백분율로 표시하여 고객이 기대하는 방식으로 각 값을 표시합니다. 보간 과정의 일부로 서식을 지정합니다.
값의 서식을 지정하려면 콜론(:) 및 형식 문자열을 사용하여 식을 따릅니다. 표준 서식 문자열 및 CP0 통화 및 정수 백분율을 생성합니다. 다음 코드를 파일의 끝에 추가합니다.
decimal subtotal = 23.5m;
decimal taxRate = 0.08m;
// Follow an expression with :format to apply a standard or custom format string.
Console.WriteLine($"Subtotal: {subtotal:C}");
Console.WriteLine($"Tax rate: {taxRate:P0}");
Console.WriteLine($"Total: {subtotal * (1 + taxRate):C}");
// => Subtotal: $23.50
// => Tax rate: 8%
// => Total: $25.38
형식 문자열은 현재 문화권의 규칙을 적용하므로 통화 기호 및 구분 기호가 컴퓨터의 설정과 일치합니다.
값을 열로 정렬
여러 데이터 행을 인쇄하면 길이가 서로 다른 값 때문에 열이 들쭉날쭉해져 한눈에 살펴보기 어려워집니다. 일관된 머리글 아래에 각 이름과 숫자를 정렬하려면 각 필드에 고정 너비를 지정하여 각 값의 길이에 관계없이 열이 직선으로 유지되도록 합니다.
최소 필드 너비를 설정하려면 쉼표(,)와 너비를 사용하여 식을 따릅니다. 양수 너비는 값을 오른쪽 정렬하고, 음수 너비는 값을 왼쪽 정렬합니다. 너비와 서식 문자열을 {expression,width:format}로 결합합니다. 테이블 형식 요약을 인쇄하려면 다음 코드를 추가합니다.
(string Name, int Quantity, decimal Price)[] orders =
[
("Espresso", 2, 3.50m),
("Cappuccino", 1, 4.25m),
("Tea", 4, 2.00m),
];
// Follow an expression with ,width to set a minimum field width.
// A positive width right-aligns; a negative width left-aligns.
foreach (var order in orders)
{
Console.WriteLine($"{order.Name,-12}{order.Quantity,3}{order.Price * order.Quantity,10:C}");
}
// => Espresso 2 $7.00
// => Cappuccino 1 $4.25
// => Tea 4 $8.00
왼쪽 맞춤 이름 열과 오른쪽 맞춤 숫자 열이 읽을 수 있는 테이블로 정렬됩니다.
문화권별 출력 생성
보간된 문자열은 기본적으로 현재 문화권을 사용합니다. 로그용 고정 형식이나 영수증용 로캘처럼 특정 문화권이 필요한 경우 String.Create(IFormatProvider, DefaultInterpolatedStringHandler)에 문화권을 전달합니다. 다음 코드를 추가합니다.
decimal total = 1234.56m;
// An interpolated string uses the current culture by default.
// Use string.Create with a culture to control the formatting explicitly.
string germanReceipt = string.Create(
new CultureInfo("de-DE"), $"Gesamt: {total:C}");
string invariantLog = string.Create(
CultureInfo.InvariantCulture, $"total={total:F2}");
Console.WriteLine(germanReceipt);
Console.WriteLine(invariantLog);
// => Gesamt: 1.234,56 €
// => total=1234.56
독일 영수증은 쉼표와 10진수 구분 기호 및 유로 기호를 사용합니다. 고정 로그는 컴퓨터의 문화권에 관계없이 마침표와 기호를 사용하지 않습니다.
다음 단계
문자열 보간을 사용하여 값을 삽입, 서식 지정, 정렬 및 지역화했습니다. 원시 문자열 리터럴, 이스케이프된 중괄호 및 상수 보간 문자열을 포함한 보간 기능의 전체 집합은 개념 문서를 참조하세요.
참고하십시오
.NET