在您自己的类上使用 System.* 命名空间被认为是不好的做法
本文关键字:认为是 命名空间 自己的 System | 更新日期: 2023-09-27 17:56:41
我有一个名为ConfigurationElementCollection<T>
的类
它是System.Configuration.ConfigurationElementCollection
的通用实现
它存储在我们的解决方案Project.Utility中.dll但我已将其定义为System.Configuration
命名空间的一部分
namespace System.Configuration
{
[ConfigurationCollection(typeof(ConfigurationElement))]
public class ConfigurationElementCollection<T> :
ConfigurationElementCollection where T : ConfigurationElement, new()
{
...
}
}
当类不是系统的一部分时,将类放在 System.* 命名空间中是否被视为不良做法。 基类库?
从表面上看,这似乎是有道理的,因为它将具有相似功能的相似类保留在同一个地方。但是,对于那些没有意识到它实际上是非 .net BCL 的一部分的人来说,这可能会引起混淆,因为他们不知道去哪里寻找参考。
虽然你的类是相似的,但它仍然不是BCL的一部分。 因此,我不会将其放入System.*中。 这会引起混乱,特别是当一个人去使用它并且他们引用了 System.* 然后当他们去使用你的类时得到一个讨厌的找不到消息...... :-)
我建议将System
替换为您的公司/项目名称,或者用您的公司/项目名称作为命名空间的前缀。
这样你就可以清楚地表明它不是 BCL 的一部分,而是它与它们的关系。
此外,在(诚然不太可能)事件中,Microsoft实现这些具有完全相同名称的类/方法,您不会发生冲突。