Dmy*_*iak 4 .net c# extension-methods namespaces
在我的类库中使用"系统名称空间"是一个好主意吗?
样品:
namespace System.Web {
public static class RequestExtensions {
public static bool IsPost(this HttpRequest r) {
return string.Compare(r.HttpMethod, "POST", StringComparison.OrdinalIgnoreCase) == 0;
}
}
}
Run Code Online (Sandbox Code Playgroud)
优点:无需包含其他uses-clause(特别是对于扩展方法),因此在添加对库的引用后,所有子句都可以直接使用.
最好的示例是NUnitEx项目(使用NUnit的命名空间).
缺点:潜在的名称冲突.
jri*_*sta 15
我不得不说出其他人说的一个不好的想法.命名空间是一个组织工具,在许多层面上.它们不仅允许您为自己的目的重复使用标识符而不与其他公司冲突,它们还允许不同的公司将其产品与您或其他任何公司隔离.将代码放入System命名空间对于使用您的类型的人来说可能会非常混乱.
此外,人们知道System命名空间中的任何内容都是良好的,可靠的,经过测试的,经过社区审查的,来自Microsoft的完整文档代码.这是一个非常重要的因素,可以通过将代码放在同一个命名空间中来实现,不仅是你声称你的代码是好的,而且你必须不辜负它.