C#의 신뢰할 수 있는 Nullable 값 유형 검사
C#에서 값 유형 개체의 null 허용 여부를 확인하는 것은 까다로울 수 있습니다. 리플렉션은 방법을 제공하지만 박스형 값 유형을 처리할 때의 제한으로 인해 신뢰할 수 없습니다. 보다 강력한 솔루션은 제네릭을 활용하여 null 허용 여부를 직접 평가합니다.
다음 코드 조각은 주어진 값 유형 개체가 null을 허용하는지 여부를 효과적으로 결정합니다.
<code class="language-csharp">static bool IsNullable<T>(T obj) { // Check for null (handles both reference and nullable value types) if (obj == null) return true; // Check if the type is a value type Type type = typeof(T); if (!type.IsValueType) return true; // Reference types are always nullable // Check if it's a Nullable<T> type if (Nullable.GetUnderlyingType(type) != null) return true; // Otherwise, it's a non-nullable value type return false; }</code>
이 일반 메소드 IsNullable<T>
는 T
유형의 객체를 입력으로 취하고 null이 허용되는 경우(참조 유형 또는 true
값 유형) Nullable<T>
를 반환하고, 그렇지 않으면 false
을 반환합니다. 이는 반사 기반 접근 방식의 단점을 직접적으로 해결합니다. 이 메서드는 여전히 참조 유형을 올바르게 처리하여 true
이 본질적으로 null 허용 가능하므로 반환합니다. nullable 유형 작업에 대한 자세한 내용은 공식 Microsoft 설명서를 참조하세요.
위 내용은 C#에서 값 유형 개체가 Null을 허용하는지 확실하게 확인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!