dポイントプレゼントキャンペーン実施中!

こんにちは、いつも拝見させて頂いております。

今回は、VB.NETのEnumについて教えて頂ければと思い、投稿しました。

VB.NETでEnum定義をしているのですが、クラス内のEnumとして定義
しているのですが、そのクラスのインスタンスを生成しなくても
クラス内のEnum定義が参照できます。
クラスのインスタンスを生成していないのであれば、そのクラス内に
あるEnum定義も参照できないのではないかと考えていたのですが、
参照できたので、なぜなのかがわかりません。

自分なりに色々と調べたのですが、EnumがSystem.Enumを継承している
というのはわかりましたが、それがなぜ、クラスのインスタンスを生成
しないで、クラス内のEnum定義が参照できることになるのかがわかりません。

言語は、VB.NET2005です。

一応、ここの質問一覧も検索してみたのですが、該当しそうなもの
が見当たらなかったので、ここに投稿させてもらいました。

お忙しいところ、申し訳ありませんが、ご教授ください。

A 回答 (4件)

先の投稿であげたURLが VB.NETのものですよ



ページの右肩に『Microsoft Visual Studio 2005/.NET Framework 2.0』といった記述があります

VB6.0の記述は現在Webでの参照ができなくなっているようです
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
確かにおっしゃるとおり、記述されていました。

大変、助かりました。

お礼日時:2008/01/18 09:58

クラスの中のクラスは,外側のクラスに束縛されません。


ここはJavaと異なるので,Java経験がある場合は注意が必要です。
# Javaでは外側のクラスに束縛されます。

つまり,
Public Class OuterClass
' コード
Public Class InnerClass
' コード
End Class
' コード
End Class
とあった場合に,
Dim obj As New OuterClass.InnerClass
のように,InnerClassに自由にアクセス可能です。

Enumも一種のクラスですから,上記と同様の理由で,外側のクラスのインスタンス化なしに内側のEnumにアクセスできます。
    • good
    • 0
この回答へのお礼

なるほど、C#でやっていたときは、インスタンスを生成したあとで
そのクラス内のEnumを参照するようにしていたので、クラスインスタンス
を生成せずに、Enumを参照できるのがなぜかわかりませんでした。

ご説明戴いた内容でなんとなくですが、理解できました。
ありがとうございました。

お礼日時:2008/01/17 12:52

Microsoftのサイトなら MSDNでしょう


http://msdn2.microsoft.com/ja-jp/library/8h84wky …
そのものズバリですが ・・・
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
教えて戴いたページは、私も検索して見つけましたが、VB.NETと
いうよりは、VB6.0の情報だと思ったので、VB.NETとしての
記述のあるページを探しています。

お礼日時:2008/01/17 12:50

定数項の文字列による置き換えだからではないかと思います



Enum ... End Enum で定義された部分がご質問だとすると
Enumステートメントを調べたほうが良いでしょう

ご質問の内容が
Class oTest
  Enum Test
    First
    Secound
    Third
  End Enum
  Public objEnum1 as Test
  Private objEnum2 as Test
end Class
と定義した場合
oTest.Test.First はそのままアクセス可能です
objEnum1やobjEnum2などは oTestのインスタンスが無いとアクセスできません
また objEnum2はPrivateなので oTestクラス内でのみ参照可能です
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
Enumステートメントでネットを検索したら、VBの記述として
Enumのスコープの説明がありましたので、理解できました。

ただ、VB.NETとしてのそういった記述があれば、さらにいいなと
思いますので、もう少し調べてみます。

ありがとうございました。
もし、VB.NETのそういった記述している箇所をご存知でしたら
教えていただけると幸いです。

お礼日時:2008/01/15 17:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!