C# では、Null 許容型をジェネリック パラメーターとして定義でき、Null 許容値を扱うときに柔軟性が得られます。ただし、互換性を確保するには、特定の制約を考慮する必要があります。
提供されたコードは、GetValueOrNull 関数を使用してデータベースから null 許容値を取得することを目的としていました。当初、ジェネリック パラメーターはクラスであるように制約されていたため、int? というエラーが発生しました。
これに対処するために、制約が構造体に変更されました。ただし、Null 許容型が Null 非許容である必要があることを示す別のエラーが発生しました。
解決策には、GetValueOrNull 関数の戻り値の型を Nullable に変更することが含まれます
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 許容型をジェネリック パラメーターとして効果的に利用でき、コード内での Null 許容値の柔軟性と処理が可能になります。
以上がC# で Null 許容型をジェネリック パラメーターとして使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。