반응형
✍️vs2022로 c# 코드 작성 중 아래와 같이 단순한 배열 선언에 초록색 밑줄이 나오길래 거슬려서 확인해 보았다.
※ 커서를 가져다 대본 결과 위와 같은 문구가 나왔고, 이 거슬리는 밑줄을 없애기 위해선 두 가지 방법이 있었다.
1. required 키워드 사용
2. Nullable로 선언
밑줄의 원인은 설명에 써 있는 것과 같이 해당 배열의 값이 null이 올 수 있는지 아닌지가 확실하지 않아서 나오는 경고 였고. C# 11 이상의 버전에서만 보이는 경고 문구였다.
따라서 배열에 값이 null이 올 수 없게 하려면 required 키워드와 함께 선언하는 첫 번째 방법을 사용하면 되고, null이 올 수 있도록 하려면 두 번째 방법인 Nullable로 선언하면 된다.
위는 required와 Nullabe의 사용예시인데, 좌측의 required는 null이 올 수 없으므로 항상 값이 들어 있어야 하기 때문에 값을 할당하지 않아 오류 밑줄이 뜨게되는 반면, 우측의 Nullable은 값이 null이 될 수 있기 때문에 값을 할당해주지 않아도 오류가 발생하지 않는 것을 볼 수 있다.
💡해결 방안
1. [SetsRequiredMembers]을 이용하여 생성자를 선언하고, 해당 생성자에서 required로 선언된 변수를 할당해준다.
2. Object Initializer를 이용해 required로 선언된 변수를 초기화 한 뒤 사용한다.