7

私はというクラスを持っています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。*名前空間に配置することは、それらがSystem。*基本クラスライブラリの一部ではない場合、悪い習慣と見なされますか?

一見すると、同じ場所に同じような機能を持つ同じようなクラスを保持しているので、それは理にかなっているようです。ただし、参照を探す場所がわからないため、実際には.net以外のBCLの一部であることに気付いていない人にとっては混乱を招く可能性があります。

4

2 に答える 2

7

あなたのクラスは似ていますが、それでもBCLの一部ではありません。このため、System。*には入れません。特に、System。*が参照されていて、クラスを使用しようとすると厄介なメッセージが見つからない場合は、混乱が生じます。...:-)

于 2011-05-14T17:04:13.013 に答える
3

会社/プロジェクト名で置き換えるかSystem、名前空間の前に会社/プロジェクト名を付けることをお勧めします。

そうすることで、それがBCLの一部ではなく、BCLとどのように関連しているかを明確にすることができます。

また、(確かにありそうもない)イベントでは、Microsoftは、衝突しないように、まったく同じ名前でこれらのクラス/メソッドを実装します。

于 2011-05-14T17:09:42.827 に答える