C# 문자열 보간법 (String Interpolation) 성능 비교
문자열 보간법
C# 6.0 에서는 문자열을 생성하는 새로운 방법이 나왔습니다. 이전에 변수나 식 결과를 문자열의
중간 또는 끝에 삽입 하려면 + 연산자를 사용하거나 String.format 을 사용하였는데 문자열
보간기능을 사용하려면 문자열 내에 중괄호 { } 부호를 넣고 안에 식을 넣기만 하면 됩니다.
사용 예
const string hi = "안녕하세요";
const string bye = "안녕히가세요";
Point point = new Point(30,50);
string text = $"{hi} {bye} {point.X} {point.Y}";
/*
안녕하세요 안녕히가세요 30 50
*/
Console.WriteLine("{gender==1?"남자":"여자"} 입니다.");
중괄호내에 표현식을 넣으면 ToString() 결과값으로 대체합니다.
즉 어떠한 값 형식 ( int, float, double, bool , ... )이나 참조 형식을 넣어도 ToString() 으로 대체 되어 출력됩니다.
다른 방법과 성능 비교
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
int loopCount = 10000000;
long first = 50002030223;
string second = "abcdefghijklmnopqrstuvwxyz";
// 문자열 연결
var stopWatch = Stopwatch.StartNew();
for(int i = 0; i < loopCount; i++)
{
string result = first + " - " + second;
}
stopWatch.Stop();
Console.WriteLine(stopWatch.Elapsed.TotalMilliseconds);
// 문자열 보간 String Interpolation
stopWatch = Stopwatch.StartNew();
for (int i = 0; i < loopCount; i++)
{
string result = $"{first} - {second}";
}
stopWatch.Stop();
Console.WriteLine(stopWatch.Elapsed.TotalMilliseconds);
// 복합 형식 지정 Format
stopWatch = Stopwatch.StartNew();
for (int i = 0; i < loopCount; i++)
{
string result = string.Format("{0} - {1}", first, second);
}
stopWatch.Stop();
Console.WriteLine(stopWatch.Elapsed.TotalMilliseconds);
}
}
Output
//1천만 회 돌렸을때 걸리는 계산 시간
1527.379 // 문자열 이어 붙이기
2075.5812 // 문자열 보간
2092.5805 // format
문자열을 이어 붙이는 방법이 가장 처리가 빨랐고 문자열 보간과 format은 비슷하게 나왔습니다.
'프로그래밍 > C#' 카테고리의 다른 글
C# 박싱 / 언박싱 ( Boxing / Unboxing) (0) | 2017.01.05 |
---|---|
C# Invoke를 사용해 크로스 스레드 문제를 해결하는 방법 (0) | 2017.01.04 |