【发布时间】:2015-11-21 19:11:14
【问题描述】:
我对命名空间声明有点怀疑。
我们可以通过两种类型声明命名空间。比如,有using关键字和没有using关键字
A点
public List<**SharedModel.DisplayModel.AttendanceDisplayModel**> GetAttendanceById(string userId)
{
throw new NotImplementedException();
}
我的应用程序名称是TravelManagement。但我的观点 A 不接受TravelManagement。
B点
using TravelManagement.SharedModel.DisplayModel;
public List<AttendanceDisplayModel> GetAttendanceById(string userId)
{
throw new NotImplementedException();
}
我的应用程序名称是TravelManagement。但我的观点 B 采取 TravelManagement 。 Why Why?
请参阅有关 SharedModel.DisplayModel.AttendanceDisplayModel 的命名空间声明。
这两种命名空间声明有什么区别?
其实我知道一些基本的想法
1 - 在全局声明命名空间时有助于减少代码。
2- 还有using 关键字有助于自动关闭对象连接。
但是我的命名空间类没有创建任何对象,十个为什么我需要using?
如果您有任何想法,请告诉我。
欢迎您!
【问题讨论】:
-
好的伙计,我的样品有什么不同?
-
导入命名空间告诉您编译器引用该命名空间中的类和方法定义。如果您在两个引用的命名空间中有相同的方法,则会引发歧义错误。那时你需要像 A 点一样明确指定你的命名空间。
-
您使用的是using (directive)。很难理解您的实际问题是什么。如果您的命名空间
SharedModel.DisplayModel包含一个类AttendanceDisplayModel,那么指令using SharedModel.DisplayModel;将允许您直接访问AttendanceDisplayModel,而不必总是指定完全限定的类名SharedModel.DisplayModel.AttendanceDisplayModel。这假设在任何其他“已使用”命名空间中都没有其他类AttendanceDisplayModel。 -
另一个using (statement)只是为了方便处理IDisposable对象。这可能就是您所说的“2- [...] 自动关闭”。但您似乎没有在这里使用 IDisposable。
标签: c# asp.net namespaces global-variables declaration