728x90
반응형
안녕하세요
얼마 전 Visual Studio 2022 최신 버전을 설치하면서
C#10을 사용하게 되었는데요(C#10은 .NET 6에 포함되어 2021년 11월에 출시되었습니다.)
기존에는 c#5를 사용하고 있어서
새로 개발할 때에 변경된 것들이 있어 불편하기도 하고
검색해도 잘 나오지 않기 때문에
앞으로 개발하면서 알아야 할 정보를 정리해 보려 합니다.
c# 8 에서는 NRT(nullable Reference Types)라는 새로운 기능이 도입되었습니다.
참조 형식에 주석을 추가할 수 있도록 하여 null을 포함하는 것이
유효한지의 여부를 나타 냅니다.
새로 생성되는 모든 프로젝트 템플릿은
프로젝트에 대하여 nullable 콘텍스트를 사용하도록 설정이 됩니다.
c# 컴파일러는 null을 포함하므로
초기화되지 않은 nullable이 아닌 속성에 대하여 경고를 합니다.
public string TEST {get; set;}
CS8618 : 생성자를 종료할 때 NULL을 허용하지 않는 속성 'TETST'에 NULL이 아닌 값을 포함해야 합니다.
속성을 NULL 허용으로 선언해 보세요 라는 경고가 발생합니다.
이러한 경고가 발생했을 경우 아래와 같은 방법들을 사용하면 됩니다.
public class NUllAbleTest
{
//방법1. TEST의 속성이 NULL일수 있음을 string? 처럼 명시
public string ? TEST { get; set; }
//방법2. 초기값 지정
public string TEST2 { get; set; } = "Default TEST2";
//방법3. 생성자 바인딩
public string TEST3 { get; set; }
public NUllAbleTest(string test3)
{
TEST3 = test3;
}
//방법4. null-forgiving 연산자(!)를 사용하여 속성을 null로 초기화
public string TEST4 { get; set; } = null!;
}
이상 C#8 이상에서 CS8618 경고 해결 방법이었습니다.
728x90
반응형
'소소한 C# 지식' 카테고리의 다른 글
[c#]WinForm Datagridview CheckBox 사용 방법 (30) | 2022.05.25 |
---|---|
[C#]C#에서 메일 보내기 (25) | 2022.05.21 |
[C#] POST 방식으로 Web API 호출하기 (12) | 2022.05.12 |
[C#] C#에서 비밀번호 검증(Password Validation) (22) | 2022.05.10 |
[C#]C#에서 컴퓨터 정보 조회 (18) | 2022.05.05 |
댓글