- ベストアンサー
クラスとモジュールの違い
VB2005を勉強中です。 申し訳ありませんが、色々教えていただきたいです。 1、クラスとモジュールは何が違うのでしょうか? 2、項目としてクラスを追加してクラスの宣言(Public Class class1)を消して、モジュールの宣言(Module class)を書けばモジュールになるのでしょうか? 3、「Visual Studio にインストールされたテンプレート」の説明がされたいるサイトがありましたら紹介してほしいです。 情報ボックス、ログインフォーム、スプラッシュスクリーンとかの説明が読みたいです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Rubyのclassとmoduleの違いなら説明ならできるんですが、VBはよくわかりません。 ただ、#1の方の訳は部分的に間違ってます。 X rather than Y は、YではなくX という意味ですし may never の may は推量や可能性ではなく許可です。 名前空間云々はよくわかりませんが、instansiate というのは class では var = new ClassMoge(...) のようにインスタンスを生成して変数に代入できるけれども var = new ModuleHoge() のようなモジュールのインスタンス生成はできないということでしょう。 あとたぶん、 ・classは継承できるけどmoduleはできない ・moduleの中にclassを置けるけど逆は不可 ・プログラムのエントリポイント(Sub Main())はModuleの中にしか置けない ぐらいはいえると思います。 >2、項目としてクラスを追加してクラスの宣言(Public Class class1)を消して、モジュールの宣言(Module class)を書けばモジュールになるのでしょうか? おおざっぱに言って、 Module と End Nodule で挟めばそれはモジュールです。
その他の回答 (1)
- himajin100000
- ベストアンサー率54% (1660/3060)
1,2だけ解るので Visual Basic Language Specification 9.0 http://www.microsoft.com/downloads/details.aspx?FamilyID=39de1dd0-f775-40bf-a191-09f5a95ef500&displaylang=en 86ページ >7.7 Standard Modules 標準モジュール A standard module is a type whose members are implicitly Shared and scoped to the declaration space of the standard module's containing namespace, rather than just to the standard module declaration itself. 標準モジュールとは,そのメンバが暗黙的にSharedとされ,そのモジュールだけでなく,モジュール自体が属する名前空間がスコープとなる型のことである。 Standard modules may never be instantiated. It is an error to declare a variable of a standard module type. 標準モジュールは生成されることはないだろう。標準モジュール型の変数を宣言するとエラーとなる。 #クラスで十分。