我很想知道为什么"使用命名空间"指令在C#中是可以接受的,尽管在C++中它不是.我知道C++和C#是不同的,但我的猜测是C++和C#几乎来自同一个家族,并且应该使用相同的想法来进行命名空间解析.C++和C#都有一个别名关键字来绕过命名空间冲突.
任何人都可以指出我,我不是在C#中的行之间阅读,这使得使用"using namespace"指令是可以接受的,并避免了C++无法解决的问题.
Pav*_*aev 27
在C++中,如果您using namespace在标题中写入,那么它对包含该标题的任何人都有效.这使它在标题中几乎无法使用.此时,您也可以在.cpp文件中避免它(在全局范围内),如果只是为了保持一致性,并使.h和.cpp之间的移动实现更容易.
(请注意,本地作用域using namespace- 即在函数内 - 通常被认为是好的;只是它们对冗长度没有帮助)
在C#中,没有什么比#include这更好的了,并且using指令的范围永远不会超出单个.cs文件.所以到处使用它几乎是安全的.
另一个原因是标准库的设计.在C++中,你只是std(好吧,现在还有一些,但它们很少使用).在C#中,你有很多宝石System.Collections.Generic,对于非常普遍使用的东西来说非常冗长.using在C#中避免比在C++中避免更痛苦.
总而言之,虽然C#和C++确实共享一些通用设计,但在代码模块化问题上(我将头部,模块,名称空间全部分配给该组),他们的设计却截然不同.
对我来说,它归结为支持工具.Intellisense,快速类查找(F1键)和Visual Studio的重构选项提供了所需的参考查找功能.
此外,C#具有类中的每个方法 - 没有命名空间级别的函数.
| 归档时间: |
|
| 查看次数: |
2165 次 |
| 最近记录: |