【发布时间】:2019-03-12 04:39:59
【问题描述】:
我正在尝试创建一个类GameOption,它将包含三个(实际上是四个)值:
字符串形式的选项名称
作为 T 的选项
默认值为 Nullable
我的班级是这样的:
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 不是 Nullable?
有class X<@NotNull T> 之类的东西吗?
【问题讨论】: