在命名空间中添加新类时,这就是我得到的(这是在mvc3项目中)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Foo.Models
{
public class Bar
{
}
}
在命名空间Foo.Models中还有其他类。但是,通过将内容放在不同的.cs位置来分隔内容是很好的。我认为这是相当标准的。我知道编译器无论如何都会发挥其魔力来构建所有这些。这就是我的问题出现的地方。如果稍后组成命名空间,那么为什么总是需要重新定义类正在使用的内容?如果它已经在命名空间中的某个位置可用,那么是否有必要在定义命名空间内的类的每个using System;
文件中说.cs
?有人可以为我解释一下这一点,并且也许可以通过一种方式来实现这一点,我可以定义命名空间的所有用例,然后添加到该命名空间的任何类本身都可以访问那些。
答案 0 :(得分:3)
using
语句的范围限定为您正在使用的特定.cs文件。
它们只是在该类文件的上下文中提供了一个方便的快捷方式,它允许您仅使用类的名称,而不是在使用它们的任何地方完全限定类名。
存在命名空间,因为不同的团队将不可避免地为不同的类使用相同的类名(我想知道有多少Util类在那里)。
您的项目中可能有两个不同的类要使用具有相同名称的不同对象。能够在每个文件中使用不同的using
语句,可以方便地执行此操作。
请注意,您始终可以编辑新类的模板,以预先填充所有类中所需的using
语句。