首頁 > 後端開發 > C++ > 如何在 C# 中使用可空型別作為泛型參數?

如何在 C# 中使用可空型別作為泛型參數?

Susan Sarandon
發布: 2025-01-05 10:11:40
原創
200 人瀏覽過

How Can I Use Nullable Types as Generic Parameters in C#?

可空型別為泛型參數

在C# 中,可將可空型別定義為泛型參數,因而在處理可為空值時提供靈活性。但是,必須考慮特定的約束以確保相容性。

提供的程式碼旨在使用 GetValueOrNull 函數從資料庫中檢索可為空的值。最初,泛型參數被限制為一個類,這導致錯誤為 int?是一個結構體。

為了解決這個問題,約束已更改為結構體。然而,又出現了一個錯誤,表示可為空類型必須是不可為空的。

解決方案是將GetValueOrNull 函數的回傳類型修改為Nullable;並使用不可為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 類型有效地用作泛型參數,從而提供靈活性並處理程式碼中的null 值。

以上是如何在 C# 中使用可空型別作為泛型參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板