C# 일반 메서드에서 null 값 반환
일반 메소드를 생성할 때 개발자는 일반 유형 매개변수가 있는 메소드에서 null 값을 반환하는 문제에 직면할 수 있습니다. 제공된 코드 조각에서:
<code class="language-csharp">static T FindThing<T>(IList collection, int id) where T : IThing, new() { foreach (T thing in collection) { if (thing.Id == id) return thing; } return null; // 错误:无法将 null 转换为类型参数 'T' }</code>
컴파일러는 "null이 값 유형일 수 있으므로 유형 매개변수 'T'로 변환할 수 없습니다. 대신 'default(T)'를 사용해 보십시오."라는 오류를 생성합니다. 값 형식(구조체)이 포함된 제네릭 형식에 대해서는 null을 직접 반환할 수 없기 때문입니다.
오류 해결
이 문제를 해결하기 위해 개발자에게는 세 가지 옵션이 있습니다.
기본값 반환: T 유형의 기본값을 반환하려면 default
또는 default(T)
키워드를 사용하세요. 참조 유형의 경우 null, 정수의 경우 0, 문자의 경우 '를 반환합니다. ' 등
제네릭 유형 제한: 참조 유형만 반환하도록 메소드를 제한할 수 있는 경우 where T : class
제약 조건을 추가할 수 있습니다. 이를 통해 null을 직접 반환할 수 있습니다.
null 값을 null 허용 값으로 반환: null이 아닌 값 유형만 반환하도록 메서드를 제한할 수 있는 경우 where T : struct
제약 조건을 사용할 수 있습니다. 이 경우 null은 null 허용 값 형식의 null 값으로 반환될 수 있습니다.
위 내용은 C#의 일반 메서드에서 Null 반환을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!