- - PR -
既存コントロールを拡張する場合の名前空間をどうしていますか?
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-03-02 18:48
例えば、TextBox で不足している機能やプロパティを増設する時、TextBoxクラスから
派生させた新しいクラスを作ります。 皆さんは、このクラスは、どの名前空間にしていますか? 独自の名前空間を作って、その場所におきますか? それとも、System.Windows.Forms として、その場所におきますか? | ||||||||
|
投稿日時: 2006-03-02 19:00
私の場合は、独自の名前空間に置きます。 会社名.物件名.[NFC に準じた分類名] にしています。 (例 : Jeanne.HogeBank.IO.* ) そもそも、名前空間は、 CompanyName.TechnologyName[.Feature | .Design] が一般的だとされていますが、既存の拡張となると確かに配置に困りますね。 ただ、System.Windows.Forms などには配置しないようにします。 標準のクラス ライブラリ群なのかどうかが、わかりにくくなります。 大抵、Jeanne.Windows.Forms.* などにして、何の拡張なのか推測できるようにしています。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-03 12:01
やはり独自の名前空間に置いているのですね。 僕もじゃんぬねっとさんと同じように、MyNameSpace.Windows.Forms.* としていたの です。 僕はここ数日、DataGridView を拡張している訳ですが、関連する DataGridViewから 始まるクラスが大量に System.Windows.Forms に登録されているので、同じ場所に置 いた方が都合が良いんじゃないだろうか? などと思い初めてしまいました。 でも、やはり別モノですし、System.Windows.Forms に置くべきではないですね。 ありがとうございました。 | ||||||||
|
投稿日時: 2006-03-03 14:48
例えば Button はこんな階層になっていますが、System.ComponentModel.Component から継承しているからといって、System.Windows.Forms.Control を System.ComponentModel 名前空間に配置したりしていないですよね。
極論で解釈すると、クラスは全て System.Object から拡張していますが、System 名前空間に配置したりしませんよね。 じゃんぬさんも仰っていますが、名前空間の先頭は機能名ではなく、作った者の名前を設定するのが一般的でしょうね。それ以降の名前空間は機能毎とかに分けるべきなのでしょう。 ちなみに。 使用されるクラスと、それを使用するクラスという主従関係が大概存在すると思いますが、使用されるクラスはより上位の名前空間に、使用するクラスはより下位の名前空間に配置します。(私は) 最初は逆のような気がして気持ち悪いのですが。 _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2006-03-03 15:41
フォローです。 名前空間だけに限らずクラスに関しても同様のことが言えます。 たとえば、アイテムとコレクションの関係である場合は、 クラス内にネストしたりするのですが、コレクションの方が下位になります。 これは、既存の Framework を見てもそのようになっています。 # アイテムとコレクションは極端ですが、良い例が思いつかなかった... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-03 17:02
なるほど。確かにその通りですね。 やはり、今までどおり、R.TANAKA.ICHIRO.Windows.Forms.* にしようと思います。
そうですね。ちょっと気持ち悪いですよね。 慣れの問題でしょうか。 ありがとうございました。 | ||||||||
|
投稿日時: 2006-03-03 17:07
え、そうなんですか。何か本当に気持ち悪いですね。
よくじゃんぬねっとさんは、Framework を参照しなさいと言いますが、具体的に どのように見るのでしょうか? | ||||||||
|
投稿日時: 2006-03-03 17:20
そのクラス (アイテム) に依存したコレクションですからね。(^^)
真面目な話、オブジェクト ブラウザですよ。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1|2|3
次のページへ»