GetValueOrNull
最初は、null を返すことを許可するクラス制約が使用されていました。ただし、int? などの null 許容型は構造体であり、クラス制約で必要な参照型として禁止されています。
これを修正するには、制約を null 非許容の戻り値が許可される構造体に変更します。ただし、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; }
このアプローチを採用すると、 GetValueOrNull メソッドを使用して null 許容型を処理し、データベース値のシームレスな取得を保証します。
以上がデータベース レコードを取得するときに、Null 許容型をジェネリック パラメーターとして処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。