簡體   English   中英

該類型必須是不可為空的值類型,以便在通用類型或方法“ System.Nullable”中將其用作參數“ T” <T> “

[英]The type must be a non-nullable value type in order to use it as parameter 'T' in the generic type or method 'System.Nullable<T>'

我創建一個通用類:

public class Pair<L, R>
{
    public L? left;
    public R? right;
    // some code
}

我想在那里為通用類型使用可空變量。 編譯器給出錯誤:

該類型必須是非空值類型,才能在通用類型或方法“ System.Nullable”中用作參數“ T”

在這種情況下,克服該錯誤的正確構造應該是什么? 謝謝。

您可以將它們約束為值類型:

 public class Pair<L, R>  
     where L: struct
     where R: struct

但這不允許引用類型(類),尚不清楚這是否是您想要的。
當L和R是引用類型時,您不需要?

編寫一個允許兩者都使用的通用對要困難得多。 我不確定是否可以直接完成。 也許在C#8中。

否則,您將需要一些圍繞成員的包裝器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM