如果我有一个名称空间:
namespace MyApp.Providers
{
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Globalization;
}
这是否意味着如果我创建具有相同命名空间的其他文件和类,则共享using语句,并且我不需要再次包含它们?
如果是,这不是一个管理上的头痛吗?
答案 0 :(得分:11)
不,它只对文件中的命名空间部分有用。不适用于命名空间内的所有文件。
如果将using语句放在命名空间之外,则无论命名空间如何,它都将应用于整个文件。
在转到外部范围之前,它还将首先搜索命名空间内的Usings。
答案 1 :(得分:2)
答案 2 :(得分:0)
不,它没有,所以不,它不是。
考虑在namespace
声明之外,您处于全局命名空间中的事实。源文件的该区域中的using
语句是否会影响其他源文件中的全局命名空间?
答案 3 :(得分:0)
没有。除了部分类之外,您需要在每个类中包含命名空间。
一方面注意:您正在做一个非常好的做法,将using语句放在命名空间中。这是非常好的语法。
保持良好的工作。
答案 4 :(得分:0)
using语句对于它们出现的代码文件有效,但有一点小小的变化;如果将命令放在命名空间中,则它们仅限于该命名空间的范围,但仍然只在同一代码文件中。
答案 5 :(得分:0)
使用仅适用于当前文件。无论它们是在命名空间声明的内部还是外部,都只会产生很小的差异:
类型的查找顺序如下:
结果,这个程序编译得很好:
namespace MyProject.Main {
using System;
class Program {
public static void Main(string[] args) {
Console.WriteLine("Hello, World!");
}
}
}
// in another file:
namespace MyProject.Console {
class Test {}
}
但是如果将using System;
移到顶部,则编译将失败(MyProject.Console.WriteLine不存在)。