Nullable이란 C#에서 null값을 가질 수 있는 값형에 대한 특별한 형식이에요.
기본적으로 값형에는 null값을 허용하지 않는데 Nullable을 사용하면 값형에 null값이 들어갈 수 있게 해줘요. 형식은 ?연산자를 사용해서 선언합니다.
// Nullable 형식 변수 선언
int? nullableInt = null;
double? nullableDouble = 3.14;
bool? nullableBool = true;
// 값 할당 및 접근
nullableInt = 10;
int intValue = nullableInt.Value;
// null 값 검사
if (nullableDouble.HasValue)
{
Console.WriteLine("nullableDouble 값: " + nullableDouble.Value);
}
else
{
Console.WriteLine("nullableDouble은 null입니다.");
}
// null 병합 연산자 사용
// nullableInt ?? 0과 같이 사용되며, nullableInt가 null이면 0을 반환합니다.
int nonNullableInt = nullableInt ?? 0;
Console.WriteLine("nonNullableInt 값: " + nonNullableInt);
사용예시에서 보이는 것처럼 자료형에 ?연산자를 붙이면 돼요.
문자열 빌더는 다양한 메서드를 제공하여 문자열에 대한 여러 작업을 수행할 수 있게 해줘요.
내부 버퍼를 사용해서 문자열 조작을 수행하므로 크기를 동적으로 조정할 수 있기때문에 문자열의 크기가 늘어나거나 줄어들어도 추가적인 메모리 할당이 발생하지 않고 반복적인 문자열 조작 작업이 발생해도 메모리 할당 및 해제 오버헤드가 크게 감소합니다.
오버헤드는 어떤 처리를 하기 위해 들어가는 간적적인 처리시간, 메모리 등을 말해요.
주요 메서드
StringBuilder sb = new StringBuilder();
// 문자열 추가
sb.Append("Hello");
sb.Append(" ");
sb.Append("World");
// 문자열 삽입
sb.Insert(5, ", ");
// 문자열 치환
sb.Replace("World", "C#");
// 문자열 삭제
sb.Remove(5, 2);
// 완성된 문자열 출력
string result = sb.ToString();
Console.WriteLine(result);