본문 바로가기
유니티

Day 21 - C# (Nullable, StringBuilder)

by shin0707 2024. 5. 8.
728x90

  • 주제

1. Nullable

2. StringBuilder


  • 공부내용

1. Nullable

주로 값형 변수가 null인지 아닌지를 확인하고 처리해야 할 때 사용한다.

?연산자를 사용하여 선언한다.

(값이 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);

2. StringBuilder

- 5가지 메서드 제공: Append(추가), Insert(삽입), Replace(대체), Remove(제거), Clear(모두 제거)

- 효율적인 메모리 관리: 문자열의 크기가 늘어나거나 줄어들어도 추가적인 메모리 할당이 발생하지 않는다.

(용량이 무제한은 아니며 최대 용량이 지정되고 최대 용량을 넘어서게 되면,

새 공간이 자동으로 할당되고 용량이 두 배로 증가한다)

StringBuilder sb = new StringBuilder();

// 문자열 추가
sb.Append("Hello");
sb.Append(" ");
sb.Append("World"); //출력: Hello World

// 문자열 삽입
sb.Insert(5, ", "); //5번째에 콤마 삽입  //출력: Hello, World

// 문자열 치환
sb.Replace("World", "C#"); //World를 C#으로 치환  //출력: Hello, C#

// 문자열 삭제
sb.Remove(5, 2); //5번째부터 2개, 즉 5번째, 6번째 삭제 //출력: HelloC#

// 완성된 문자열 출력
string result = sb.ToString(); //문자열로 바꾸기
Console.WriteLine(result);

 

 

 

728x90
반응형