>백엔드 개발 >C++ >데이터베이스 레코드를 검색할 때 Null 허용 유형을 일반 매개변수로 처리하려면 어떻게 해야 합니까?

데이터베이스 레코드를 검색할 때 Null 허용 유형을 일반 매개변수로 처리하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-05 19:49:41832검색

How Can I Handle Nullable Types as Generic Parameters When Retrieving Database Records?

일반 매개변수의 Null 허용 유형 제한 해결

GetValueOrNull(이 DbDataRecord 판독기, 문자열 컬럼 이름), null 허용과 관련된 제한 사항이 발생할 수 있습니다.

처음에는 null 반환을 허용하는 클래스 제약 조건이 사용되었습니다. 그러나 int?와 같은 null 허용 유형은 구조체이므로 클래스 제약 조건에서 요구하는 참조 유형으로 금지됩니다.

이를 수정하려면 제약 조건을 null을 허용하지 않는 반환 값에 허용되는 구조체로 변경하세요. 그러나 null 허용 유형을 할당하려고 하면 null 허용이 아닌 값 유형이 필요하다는 오류가 표시됩니다.

이러한 제한을 극복하려면 다음 전략을 고려하세요.

  • 반환을 수정하세요. Nullable로 입력하세요. null 허용 값을 수용합니다.
  • 아래 코드에서 볼 수 있듯이 메서드 호출에서 null을 허용하지 않는 기본 유형을 지정합니다.
static void Main(string[] args)
{
    int? i = GetValueOrNull<int>(null, string.Empty);
}


public static Nullable<T> GetValueOrNull<T>(DbDataRecord reader, string columnName) where T : struct
{
    object columnValue = reader[columnName];

    if (!(columnValue is DBNull))
        return (T)columnValue;

    return null;
}

이 접근 방식을 채택하면 null 허용 유형을 처리하는 GetValueOrNull 메소드를 통해 데이터베이스 값을 원활하게 검색할 수 있습니다.

위 내용은 데이터베이스 레코드를 검색할 때 Null 허용 유형을 일반 매개변수로 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.