我创建了一个泛型类:
public class Pair<L, R>
{
public L? left;
public R? right;
// some code
}
我想在泛型类型中使用null-able变量。编译器给出错误:
该类型必须是非可空值类型才能将其用作 泛型类型或方法'System.Nullable'
中的参数'T'
在这种情况下,为了克服这个错误,正确的构造应该是什么?谢谢。
答案 0 :(得分:4)
您可以将它们限制为值类型:
public class Pair<L, R>
where L: struct
where R: struct
但这不允许引用类型(类),不清楚这是否是你想要的。
当L和R是参考类型时,您不需要?
编写一个允许两者的通用配对要困难得多。我不确定它是否可以直接完成。也许在C#8中。
否则你需要在成员周围使用一些包装。