即使不导入命名空间,也会导入项目

时间:2010-02-19 15:46:42

标签: visual-studio-2008 c#-3.0

即使我们不导入“系统”名称空间,也可以访问“系统”名称空间中包含的各种项目。像各种类型的别名(字符串,单个,bool,十进制...),对象类,以及对象类的功能。通过Intellisence可以看到这些项目。 当我们导入System Name-space(使用System)时,我们可以访问其中的所有类型(Array,Enum和更多)以及实际类型(System.String,System.Float等)。

任何人都可以告诉我这是为什么?

2 个答案:

答案 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这样的名称空间。如果您正在使用数据库,则可能需要的数据需要经过精心导入。“

http://www.redacron.com/tutorials/ASPNET/namespaces.php

Here's a related question you may be interested in.

答案 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”。