【问题标题】:What is the difference between type of namespace declaration命名空间声明的类型有什么区别
【发布时间】: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 采取 TravelManagementWhy 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


【解决方案1】:

通常,您使用命名空间来区分具有相同名称(!)的方法、成员等。

假设您的一位朋友也编写了一个 AttendanceDisplayModel。通过命名空间,您知道应该调用哪个模型;)

【讨论】:

  • 好吧,但实际上我没有得到详细的答案。请准备好我的全部问题。我在问为什么我们使用using,为什么项目名称不包含在 B 点声明中。
猜你喜欢
  • 2011-12-10
  • 2012-07-10
  • 2020-02-15
  • 2014-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
相关资源
最近更新 更多