RaM*_*RaM 2 .net c# compiler-construction nullable internals
对不起,如果它是一个愚蠢的问题,我试图更好地了解.Net中的Nullable类型.
从我注意到的微软源代码(使用ReSharper),我知道Nullable是一个结构,T需要是一个结构
public struct Nullable<T> where T : struct
Run Code Online (Sandbox Code Playgroud)
现在,我试着做这样的事情
public struct CustomNullable<T> where T : struct
{
}
public class CustomNullableClass<T> where T : struct
{
}
Run Code Online (Sandbox Code Playgroud)
我编译时遇到错误:
Nullable<int?> a = null;
Nullable<Nullable<int>> a1 = null;
Run Code Online (Sandbox Code Playgroud)
对于上面提到的代码,我得到一个错误'只有非可空值的类型可能是System.Nullable的基础',但是如何在Nullable类型中强制执行?
并为
CustomNullable<int?> a2 = null;
CustomNullableClass<int?> a3 = null;
Run Code Online (Sandbox Code Playgroud)
我得到一个错误'类型System.Nullable必须是非可空的值类型才能将其用作参数T'.
我现在有点困惑,有人可以帮我理解发生了什么或者我不明白的东西?
非常感谢提前.
编辑:如果结构是值类型而值类型不能为null,那么Nullable如何成为结构?
信用:消费者
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |