C# 유형이 null을 허용하는지 여부를 안정적으로 확인하는 향상된 방법
객체가 Null 허용 유형으로 명시적으로 선언되었는지 확인하려면 해당 기본 유형을 알아야 하고 해당 객체가 Null 허용 값 유형인지 확인해야 합니다. 이는 값 변환 및 반영을 사용하여 달성할 수 있지만 이 접근 방식은 null 허용 참조 유형을 제외하므로 포괄적이지 않습니다.
보다 강력한 솔루션은 다음과 같이 제네릭과 유형 추론을 사용하여 특정 유형의 null 허용 여부를 결정하는 것입니다.
<code class="language-csharp">static bool IsNullable<T>(T obj) { if (obj == null) return true; // 明显可空 Type type = typeof(T); if (!type.IsValueType) return true; // 引用类型 if (Nullable.GetUnderlyingType(type) != null) return true; // Nullable<T> return false; // 值类型 }</code>
이 메서드는 Nullable.GetUnderlyingType
메서드를 활용하여 제공된 유형이 Nullable<T>
유형인지 확인합니다. 기본 유형을 결정함으로써 null 허용 값 유형과 null 불가능 값 유형을 정확하게 구별할 수 있습니다.
이 방법은 일반 유형으로 작업할 때 매우 효율적이지만, 박스형 값 유형으로 작업할 때는 효율성이 떨어질 수 있습니다. 값이 객체에 박싱된 경우 기본 유형을 식별하기가 더 어렵습니다.
널 입력 가능 유형 식별에 대한 자세한 내용은 다음을 참조하세요.
위 내용은 C#에서 유형이 Null 가능 여부를 확실하게 확인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!