필드나 프러퍼티에 [ic]required[/ic]라고 붙어 있는걸 본적 있을거다.
이들의 정체는 무엇일까?
이 키워드는 c# 11에서 새로 도입 된 키워드로 필수 한정자라 불린다.
이해를 돕기 위해 필수 한정자(required modifier)를 쓴 경우/안 쓴경우 어떤 차이가 있는지 알아보자.
필수 한정자 안 쓴 경우
class Person
{
public string Name; // 필드
public int Age { get; set; } // 속성
}
var p = new Person { Name = "Alice", Age = 20 };
Console.WriteLine(p.Name); //Alice
위 코드에서 [ic]Age[/ic]값을 할당 안한다면 어떻게 될까?
var p = new Person { Name = "Alice"};
Console.WriteLine(p.Name); //Alice
문제 없이 정상 작동한다.
하지만 필수 한정자를 쓸 경우 어떤 차이가 있을까?
필수 한정자 쓸 경우
예제에서는 [ic]Age[/ic] 속성에 required를 적용하였다.
class Person
{
public string Name; // 필드
public required int Age { get; set; } // 속성
}
이번에도 마찬가지로 Age를 할당하지 않고 객체를 생성해보겠다.
var p = new Person { Name = "Alice"};
Console.WriteLine(p.Name);
이번에는 컴파일단에서 에러가 발생된다.
즉 정리하자면 필수 한정자를 통해 객체 생성시 반드시 넣어야할 값을 강제할 수 있다.
이 글과 읽으면 좋은글
'c#' 카테고리의 다른 글
[c# LINQ] Orderby vs ThenBy 차이 (0) | 2023.03.20 |
---|---|
[c# Linq] Select vs SelectMany 차이 (0) | 2023.03.20 |
[c# EntityFramework] dbcontext 마이그레이션 롤백하는 방법 (0) | 2023.02.28 |
[c#] json 파싱하는법 (0) | 2023.02.23 |
C#에서 파이썬 파일 실행 시키는 방법 완벽정리(with Process) (1) | 2023.01.03 |
댓글