man*_*nji 4 .net c# compiler-construction
在.Net 2中,代码:
namespace ns
{
class Class1
{
Nullable<int> a;
}
}
Run Code Online (Sandbox Code Playgroud)
不编译并给出错误:
找不到类型或命名空间名称'Nullable'(您是否缺少using指令或程序集引用?)
它缺少using System;但是这段代码:
namespace ns
{
class Class1
{
int? a;
}
}
Run Code Online (Sandbox Code Playgroud)
编译.
有人可以解释一下原因吗?
rpe*_*ich 11
该T?语法是由编译器翻译成System.Nullable<T>通过直接引用的类型,而不是通过检查using在范围上秒.你可以类似地写这个,编译器会成功:
System.Nullable<int> a;
Run Code Online (Sandbox Code Playgroud)
我相信int?是别名
System.Nullable<System.Int32>
Run Code Online (Sandbox Code Playgroud)
由于指定了完整类型名称,因此没有理由添加using指令.
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |