对不起,如果已经问过这个问题.我开始研究C#并注意到C#不会自动导入嵌套的命名空间.我不明白:
using System;
Run Code Online (Sandbox Code Playgroud)
应该自动导入System命名空间中包含的所有类吗?所以我不需要写
using System.Windows.Form;
Run Code Online (Sandbox Code Playgroud)
我会理解,using Windows.Form即使工作.但是编译器无法解决它!什么是的点using System;之前呢?那么为什么不自动using System;导入- 抱歉如果导入这个词在这里是错误的...也许移动到全局命名空间是正确的术语.System.WindowsSystem.Windows.Forms
Pet*_*nar 12
using指令有两个用途:
允许在命名空间中使用类型,以便您不必限定在该命名空间中使用类型:
使用System.Text;
为命名空间或类型创建别名.这称为使用别名指令.
使用Project = PC.MyCompany.Project;
http://msdn.microsoft.com/en-us/library/sf0df423.aspx
但是,您必须注意,System和System.Windows.Form无论如何都不是通过名称本身连接的.如果导入(使用)系统,则意味着您将在此类中使用系统程序集类型.您在Visual Studio项目的引用部分中指定的实际引用,您可以使用它(即使没有使用语句,因为这只是类型的快捷方式).
C#不会导入嵌套的命名空间,这是设计使然.
命名空间范围允许您组织代码并为您提供创建全局唯一类型的方法.
嵌套命名空间用于对相关功能进行分组,但是按需使用部分命名空间.
我想你不希望拥有来自如此大的命名空间的所有类型,就像System你唯一需要的那样System.Windows.
所以可能问题是为什么C#没有using System.*;像java那样的东西.我不知道答案,但我想这是因为KISS原则.这就像使用一样
select *
你永远不会知道你将添加什么类型以及它们将如何影响现有代码.
| 归档时间: |
|
| 查看次数: |
11657 次 |
| 最近记录: |