c# - 如何确保泛型参数不是 Nullable?
问题描述
我正在尝试创建一个GameOption
包含三个(实际上是四个)值的类:
选项名称为字符串
一个选项为 T
默认值为 Nullable< T >
这是我的班级的样子:
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>
东西吗?
解决方案
推荐阅读
- python - 为什么我的代码没有正确缩进?
- python - 如何在终端中使用与 jupyter notebook 中相同的环境
- zend-framework3 - 如何使用zf3动态连接数据库。?
- python - 如何操作嵌套列表
- linux-kernel - 在设备树中定义 gpio
- ibm-mobilefirst - MFP 8 服务器维护
- git - 当我尝试 squash 时,为什么我有“丢失”的 Git 提交?
- mysql - 替换中文后操作“concat”的排序规则的非法混合
- ruby-on-rails - 在本机反应中呈现用户发布的 JSON 数据
- spring - Tomcat 本地 IP 配置错误