Sof*_*eek 4 c# delegates types namespaces declaration
什么可能是在命名空间中声明类型但不在类中声明类型的可能用法.
例如:
namespace Test
{
public delegate void Ispossible();
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,不会产生任何编译错误,但我想不出为什么我们会这样声明它而不是在类中.
命名空间是.NET中的高级组织单位.
在类中声明类型通常是不受欢迎的(但是,与所有事情一样,它不是100%规则)因为它可以使类型更紧密地耦合并且更难以找到.
VB.NET模块有点例外(编辑:它们实际上更像是编译器技巧/语法 - 糖),但通常.NET生态系统中的所有内容都包含在命名空间中.
你的例子有助于重用; 如果它在一个类中,则意味着委托只应该由该类使用,并且可能导致不必要地引入重复的委托.
更新:当只使用少数几种类型时,命名空间似乎没什么用处,但如果没有它们,任何规模的项目都将是组织上的灾难.想象一下没有名称空间的.NET框架,一个(可能是过时的)计数将框架置于3500类型.
命名空间就像文档的文件夹或抽屉; 一些松散的文件很容易管理,但如果你有很多页面,那么找到你需要的那些页面就会变得很痛苦.
给文档一个读取,它很短并且不是非常复杂(也不是命名空间)但是有两个不错的点MSDN - 命名空间(c#)