- 題名: パーシャルクラスと名前空間について
- 日時: 2007/04/27 15:43:11
- ID: 19629
- この記事の返信元:
- (なし)
- この記事への返信:
- [19630] Re[1]: パーシャルクラスと名前空間について2007/04/27 15:57:18
- ツリーを表示
シャノンさん、素早い回答ありがとうございました。 > クラス名が同じでも名前空間が違うと、違うクラスとみなされます。 そうなのですね。 普通のクラスはわかるのですが、パーシャルクラスではひとつのクラス が違う名前空間で分割されるイメージなのでしょうか。。。 > 呼び出すときだって、クラス名やメソッド名は1文字たりとも間違えてはなりません。 説明不足ですいません、間違えるのは作成者の方で名前空間hogeをmogeとか 書き間違えるという意味でした。 > 名前空間名なんて、そんなに頻繁に変更するとは思えませんが、 例えば名前空間を「会社名.製品名.機能名」とかしている場合に製品名の部分 が後で変更になる可能性とかを想定していました。 Namespace.vbとかいうファイルに一括して名前空間の定義と空のパーシャル クラスを用意して本体のクラスは別に書くというような用途では使えないという ことなのですね。よくわかりました。
分類:[.NET]
表題についてお尋ねします。 まず、あるファイルに下記のような定義で作成されたクラスがあったとします。 Namespace hoge Partial Class A Sub msg1() MsgBox("msg1") End Sub End Class End Namespace 次に機能の拡張等で別ファイルに下記のクラスを定義したとします。 Partial Class A Sub msg2() MsgBox("msg2") End Sub End Class そして以下のように呼び出そうとするとエラーとなります。 Dim objA2 As New hoge.A objA2.msg1() objA2.msg2() '←メンバではありません クラスビューで見ても後で作成したクラスの方は元クラスの名前空間 に含まれていないようです。これは仕様でしょうか? 後で作成したクラスの方にも同じ名前空間を記述すればよいのですが、 複数人で作業する場合等にできれば名前空間は共有したいと思っています。 (名前空間名の修正箇所や名前空間を1文字間違えただけでも呼び出せなくなってしまう等の問題のため) 何か方法はありますでしょうか。