2009-07-22 38 views
0

当您在visual studio中创建一个新类时,它将包含一个名称空间定义,该定义从项目属性中设置的默认名称空间中提取。但是,如果您删除名称空间定义,则它将选择默认名称空间。移除它是否安全并将它留在那里有什么好处?从Visual Studio中的新类中删除命名空间定义是否安全?

+0

这是VB.NET吗? – 2009-07-22 01:27:15

+0

要么我发现两者都是相同的,即我可以从类文件中删除命名空间,在对象浏览器中搜索类并查看该类实际上驻留在默认名称空间中 – 2009-07-22 01:38:35

+0

实际上,仔细看c#和vb .net的行为有所不同。因为我的程序集与默认名称空间的名称相同,所以类似乎属于名称空间,但实际上在c#中的全局名称空间中。在vb.net中,相同的代码似乎将该类添加到默认名称空间而不是全局名称空间。 – 2009-07-22 01:55:21

回答

1

在c#中,类不会自动使用默认名称空间,而是会驻留在通常为no的全局名称空间中建议。

在VB.NET中,类将自动使用默认名称空间而不是全局名称空间,并且很安全,但这不是最佳实践。正如Pavel Minaev在下面提到的那样...

在VB上下文中,它是安全的,但一个好的经验法则是“显式比隐式更好”。就我个人而言,我总是发现VB隐式名称空间和导入是错误代码的一个很好的例子,它们会妨碍代码的可读性而不是简洁。但是,当然,这是非常主观的。

0

一般而言,它不会选取默认名称空间。一般来说,它将其放入全局命名空间中,这不是同一件事。

如果您希望该类位于名称空间中,请将namespace保留原位。

3

在VB上下文中,它是安全的,但一个好的经验法则是“显式比隐式更好”。就我个人而言,我总是发现VB隐式名称空间和导入是错误代码的一个很好的例子,它们会妨碍代码的可读性而不是简洁。但是,当然,这是非常主观的。

1

理论上它是可能的和合法的,但是......它只是不好:)(在99%的情况下)。在编写代码时,将其“打包”到某个名称空间中很不错。
此外,您不会有名字冲突FE问题(2类具有相同的名字 - 法律和管理的,如果你会在不同的命名空间让他们
基本上:
1.在全局命名空间中拥有的东西是没有的。很好(与“默认”命名空间不同)
2.命名空间允许您更容易地管理代码(这是一个好处,即使是默认的命名空间也不会删除它)
3.命名空间有助于解析名称冲突等