[英]How to ensure a generic parameter is not Nullable?
我正在尝试制作一个 class GameOption
将包含三个(实际上是四个)值:
选项名称为字符串
一个选项为 T
默认值为 Nullable< T >
这是我的 class 的样子:
public class GameOption<T> {
private T v;
private string n;
private T? def;
public string Name { get => this.n; }
public T Value { get => this.v; }
public GameOption(T o, string name, T? def) {
this.n = name;
this.v = o;
}
public void ChangeValue(T o) {
this.v = o;
}
}
但有一个问题。 正如 VS 所说,T 不能为 Nullable:
类型 T 必须是不可为空的值类型,才能将其用作泛型类型或方法 Nullable 中的参数“T”
如何确保 T 不可为空?
有没有像class X<@NotNull T>
类的东西?
如今:
public class GameOption<T> where T : notnull { }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.