DOBON.NET DOBON.NETプログラミング掲示板過去ログ

クラスとモジュール

環境/言語:[windows2000]
分類:[.NET]

現在VB.NET2005でアプリケーションを作成しているのですが、
いまいちモジュールとクラスの違いがわかりません。
モジュールでできるようなことでもクラスにしている場合があると思うのですが...
モジュールだと、暗黙的にすべてのメンバがSharedとなるからですか?
■No21952に返信(hiroさんの記事)
> 現在VB.NET2005でアプリケーションを作成しているのですが、
> いまいちモジュールとクラスの違いがわかりません。
> モジュールでできるようなことでもクラスにしている場合があると思うのですが...
> モジュールだと、暗黙的にすべてのメンバがSharedとなるからですか?

モジュールは StandardModuleAttribute なクラスに過ぎません。
いわゆる静的クラスとかなり近い存在でありますが、完全にイコールではありません。
たとえば、クラス名 (モジュール) 名を省略できてしまうことなどの違いがあります。
■No21952に返信(hiroさんの記事)
> モジュールでできるようなことでもクラスにしている場合があると思うのですが...
> モジュールだと、暗黙的にすべてのメンバがSharedとなるからですか?

どのようなコードを見てそう思われているのでしょうか?
モジュールにする場合は、概念的にクラスという枠組みに入れる必要はない、従ってインスタンス化する必要もなく、ただ単に関数や値をグローバルに直截的に扱いたい場合に使用するのが一般的でしょう。別の言い方をすれば、概念的にオブジェクト指向のオブジェクトに当たらず、単に関数や値として使いたいという感じです。

ご存じかもしれませんが、とりあえず参考ページをご紹介しておきます。

VB.NETのモジュールの正体は?
http://www.atmarkit.co.jp/fdotnet/dotnettips/248module/module.html

DOBON.NET | プログラミング道 | プログラミング掲示板