C#은 null 참조 에러(null reference exception)를 방지하기 위해 널 허용 참조 타입(nullable reference type)을 도입했습니다. 이에 따라, 컴파일러는 변수가 널(null)일 가능성이 있는 경우 경고를 표시합니다. 하지만 개발자가 변수가 절대로 널이 아님을 확신하는 경우, 컴파일러의 경고를 무시하고 이를 명시적으로 나타내기 위해 널 허용 연산자(null-forgiving operator, !)를 사용할 수 있습니다.
널 허용 연산자란?
널 허용 연산자(!)는 C#에서 널 검사 경고를 억제하는 연산자입니다. 이를 통해 컴파일러가 "이 변수는 널일 수도 있다"고 경고하는 상황을 개발자가 강제로 무시할 수 있습니다.
string? nullableString = null;
// 컴파일러 경고 발생: nullableString이 null일 수 있음
int length = nullableString.Length;
// null-forgiving operator 사용
int lengthWithNoWarning = nullableString!.Length;
위 코드에서 nullableString!.Length는 개발자가 해당 변수가 널이 아님을 보장한다고 명시하는 것입니다.
public class Example
{
private string? _name;
public Example(string name)
{
_name = name;
}
public string Name => _name!; // 컴파일러 경고를 무시
}