即使我们不导入“系统”名称空间,也可以访问“系统”名称空间中包含的各种项目。像各种类型的别名(字符串,单个,bool,十进制...),对象类,以及对象类的功能。通过Intellisence可以看到这些项目。 当我们导入System Name-space(使用System)时,我们可以访问其中的所有类型(Array,Enum和更多)以及实际类型(System.String,System.Float等)。
任何人都可以告诉我这是为什么?
答案 0 :(得分:1)
系统名称空间自动导入:
“编译ASP.NET应用程序时,CLR将包含命名空间。一些命名空间会自动导入到ASP.NET页面中,因此您无需使用Import来使CLR包含它们。系统,System.Collections ,System.IO,System.Web,System.Web.UI,System.Web.UI.HTMLControls和System.Web.UI.WebControls是CLR将始终考虑的名称空间。像System这样的名称空间。如果您正在使用数据库,则可能需要的数据需要经过精心导入。“
答案 1 :(得分:1)
c#类型别名{bool,byte,char,decimal,double,float,int,long,object,sbyte,short,string,uint,ulong,ushort}不是BCL System名称空间的一部分,它们'实际上是C#语言的一部分
恰好在使用“string”作为类型名称的任何地方,C#编译器在编译时将其视为System.String。我相信(我可能错了!)using语句实际上并没有传递给编译器生成的MSIL,所以每次对类型“string”的引用都明确地列为“System.String”并且每次引用都是StringBuilder(例如,在具有“using System.Text;”的类中,将扩展为“System.Text.StringBuilder”。