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

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

Susan Sarandon
Susan Sarandon原創
2025-01-05 10:11:40207瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn