電子書籍の厳選無料作品が豊富!

VB.NETの勉強をしつつ業務開発をしております。
現在、作成したクラスをインスタンス化した際、インテリセンスが表示されず、困っております。
メソッド内で生成したインスタンスからは、インテリセンスが表示されるのですが、クラス直下で生成したインスタンスでは、インテリセンスが表示されないのです。

Namespace MyName
  Public Class Class1
    Public Sub test1()
      Debug.Print("test1呼び出し")
    End Sub
  End Class
End Namespace

Public Class Form1
  Dim MyCls = New MyName.Class1 ←○MyNameのインテリセンスでClass1が表示
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    MyCls.test1() ←×MyNameのインテリセンスでtest1が表示されない

    Dim MyCls2 = New MyName.Class1
    MyCls2.test() ←○MyNameのインテリセンスでtest1が表示
  End Sub
End Class

インテリセンスは表示されなくても、エラーにはなりません。自分で打ち込めば動作するのですが、共有利用したいので、インテリセンスの説明は表示させたいのです。

インテリセンスとは?というレベルから勉強している超初心者のため、拙い言葉遣いご容赦ください。お知恵をお借りしたく、宜しくお願いします。

A 回答 (1件)

VBのバージョンが書かれていないようですが、試された状況から推測すると


VB2010 かと思うのですが、VB.NET のように書かれると VB.NET 2002 VB.NET 2003 を指す
事になり変に誤解を招きます。
VB2005 以降は、製品名に“.NET”の名を冠さないようになっています。
因みに、現在[.NET対応のバージョン]は下記のようなものがあります。
VB10: Visual Basic 2010 / Visual Studio 2010
VB9 : Visual Basic 2008 / Visual Studio 2008
VB8 : Visual Basic 2005 / Visual Studio 2005
VB7.1:Visual Basic .NET 2003 / Visual Studio .NET 2003
VB7 : Visual Basic .NET(2002)/ Visual Studio .NET(2002)

本題ですが、結論から言いますと変数の型を宣言されていないからインテリセンス機能が働かない。

Option Strict Off の状態で使用されているのでしょうか?
それなら On で使用されるようお勧めします。(勉強のためにもなるし)
原因は、Dim MyCls = New MyName.Class1 ←○MyNameのインテリセンスでClass1が表示
では、MyCls の変数の型が宣言されていません。
Private MyCls As New MyName.Class1 のように宣言し直して見て下さい。

>Dim MyCls2 = New MyName.Class1
こちらはローカルで宣言されていますので、VB2008 からだったかVB2010からだったかチョット
確認しておりませんが、型が書いていないと自動で型を認識するようです。

因みに下記を試して見て下さい。
Option Strict On の状態で
ローカルで
Dim i = 0 'と宣言して見て下さい。
又、Private で
Private i = 0 'と宣言して見て下さい。

又、ループ用変数等は宣言しなくても使用できるようになったりしていますが、基本は踏まえて
おいて下さい。
    • good
    • 0
この回答へのお礼

すみません。VBのバージョンは、Visual Basic 2008 ExpressEditionです。
VB.NETって書かないんですね。詳しく教えてくださり有難うございます!すごく勉強になりました。

ご指示のとおり、Option Strict Onでやってみました。確かにエラーになりました。
インテリセンスは出なかったものの、実装は出来ていたので、型宣言だったとは気づきませんでした。
Private MyCls As New MyName.Class1 としてみましたら、インテリセンスが出てくるようになりました。

お恥ずかしながら、Option Strict Onとしたら、他の箇所でも多数の型宣言エラーが出たので、
これを機に、プログラムを全体的に見直しいたします。

とても丁寧に教えていただき、本当に有難うございました。初心者の私でも、とても良く理解できました。感謝です! 本当に有難うございました。

お礼日時:2012/01/25 20:23

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