2010-02-19 103 views
3

即使我们不导入“系统”名称空间,也可以访问“系统”名称空间中包含的各种项目。像各种类型的字符串(string,single,bool,decimal ...),Object Class以及Object Class的函数。这些项目通过Intellisence可见。 当我们导入系统名称空间(使用系统)时,我们可以访问其中的所有类型(数组,枚举和更多)以及实际类型(System.String,System.Float等)。即使不导入名称空间也能导入项目

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

回答

1

C#的类型别名{BOOL,BYTE,炭,小数,双精度浮点型,整型,长,对象,为sbyte,短,字符串,UINT,ULONG,USHORT} AREN是BCL系统名称空间的一部分,它们实际上是C#语言的一部分

恰恰恰巧在任何使用“字符串”作为类型名称的地方,C#编译器在编译时将其视为System.String 。我相信(我可能错了!)使用语句实际上没有传递给编译器生成的MSIL,因此对“string”类型的每个引用都明确地列为“System.String”,并且每个对StringBuilder(例如,在一个具有“使用System.Text;”的类中展开为“System.Text.StringBuilder”。

+0

谢谢Rob为Response.I得到了我的问题的答案。 – Ananth 2010-02-22 07:32:24

1

系统命名空间自动导入:

“的CLR将包括命名空间时,ASP.NET应用程序编译的一些命名空间被自动导入到ASP.NET页面,这样你就不需要使用。导入以使CLR包括它们System,System.Collections,System.IO,System.Web,System.Web.UI,System.Web.UI.HTMLControls和System.Web.UI.WebControls是将永远是命名空间CLR考虑到了这一点,像System.Data这样的命名空间,如果你正在使用数据库,你可能需要这样的命名空间,所以需要被导入。

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

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

+0

谢谢John对你的回应。但我指的是Iam去除所有默认进口..我没有任何“使用”语句。 – Ananth 2010-02-22 07:37:09

相关问题