2024-05-03
C# - 직렬화 & 역직렬화 를 공부하며 C# 공식 문서를 찾아보다가
string? 과 같은 매개 변수를 발견하였다.
string 뒤에 붙은 '?' 는 무엇일까 ? 하는 궁금증에서 오늘의 TIL 주제가 나오게 되었다.
참조형 변수가 어떠한 객체를 참조하지 않을 때 사용된다.
C# 에서 Null 값을 가질 수 있는 값형에 대한 특별한 형식이다.
bool? 값 형식은
기본 T 값 형식 T의 모든 값 : true , false 와 null 값 중 하나를 할당할 수 있다는 뜻의 Nullable<bool> 형식을 나타낸다다.
int? nullableInt = null;
double? nulladbleDouble = 3.14;
nullableInt = 10; // 값 할당
int intValue = nullableInt.Value; // 값 접근
if(nullableDouble.HasValue)
Console.WriteLine("nullableDouble 값 : " + nullableDouble.Value);
else
Console.WriteLine("nullableDouble 은 null.");
// null 병합 연산자 : 값이 null 이면 0 을 반환
int nonNullableInt = nullableInt ?? 0;
nullable 을 사용하여, 예외처리를 보다 쉽게 할 수 있다.
직렬화 SerializeObject 메서드의 원형이다.
public static string SerializeObject(object? value, Formatting formatting)
{
return SerializeObject(value, formatting, (JsonSerializerSettings?)null);
}
object? value 를 통해
어떤 객체를 매개 변수로 받았을 때, null 형식일 수도 있다는 것을 알 수 있다.
프로젝트의 대부분의 기능 구현은 끝나가고, 리팩토링과 UI 를 개선하는 과정이다.
처음 코드를 작성할 때 나름 클래스화 했다고 생각했지만, 리팩토링을 하다보니 개선해야할 점이 많아보였다.