在C#中,如果我使用类型别名,比如
然而,如果我将类型从别名更改为显式的别名类型-
为什么当使用别名时编译器会为我导入
string
,而不是(System.String
),那么我就不需要添加using System;
指令——它可以编译通过。然而,如果我将类型从别名更改为显式的别名类型-
System.String
,那么在没有using
指令的情况下,它将无法编译。这似乎适用于所有基本类型(int
/Int32
,bool
/Boolean
)等。为什么当使用别名时编译器会为我导入
System
,但使用实际类型名称时却不会呢?
System
。这就像你在写string
时实际上是在写System.String
(尽管你在第二段开头所说的话与此相反,但它确实可以在没有using
的情况下编译)。没有System.
前缀的String
是不能编译的。 - Damien_The_Unbeliever