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
インテリセンスは表示されなくても、エラーにはなりません。自分で打ち込めば動作するのですが、共有利用したいので、インテリセンスの説明は表示させたいのです。
インテリセンスとは?というレベルから勉強している超初心者のため、拙い言葉遣いご容赦ください。お知恵をお借りしたく、宜しくお願いします。
No.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 'と宣言して見て下さい。
又、ループ用変数等は宣言しなくても使用できるようになったりしていますが、基本は踏まえて
おいて下さい。
すみません。VBのバージョンは、Visual Basic 2008 ExpressEditionです。
VB.NETって書かないんですね。詳しく教えてくださり有難うございます!すごく勉強になりました。
ご指示のとおり、Option Strict Onでやってみました。確かにエラーになりました。
インテリセンスは出なかったものの、実装は出来ていたので、型宣言だったとは気づきませんでした。
Private MyCls As New MyName.Class1 としてみましたら、インテリセンスが出てくるようになりました。
お恥ずかしながら、Option Strict Onとしたら、他の箇所でも多数の型宣言エラーが出たので、
これを機に、プログラムを全体的に見直しいたします。
とても丁寧に教えていただき、本当に有難うございました。初心者の私でも、とても良く理解できました。感謝です! 本当に有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数の変数を宣言する時、同時...
-
オブジェクト参照がオブジェク...
-
private static という変数の修飾
-
変数名の付け方
-
VB.NET getとsetの概念がわかり...
-
インスタンス参照でアクセスで...
-
「インスタンス」の意味をわか...
-
C#において、同じインスタンス...
-
javaのクラスの作り方、エラー...
-
【java】コンストラクタの処理...
-
VB6.0で、DLLを動的に参照したい
-
C# インスタンスの破棄
-
文字列を日付に変換でParseExce...
-
エクセル(複数インスタンス)...
-
子インスタンスを登録するメソ...
-
変数の参照でエラーが出てしま...
-
生成したインスタンスを削除す...
-
vb.netでFAXを送信する方法
-
newしないインスタンス?実体化...
-
整数の引数に列挙を使ったとき
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
C#において、同じインスタンス...
-
オブジェクト参照がオブジェク...
-
VB.NET getとsetの概念がわかり...
-
「インスタンス」の意味をわか...
-
C# インスタンスの破棄
-
生成したインスタンスを削除す...
-
フォームの存在をチェックする方法
-
変数の参照でエラーが出てしま...
-
文字列を日付に変換でParseExce...
-
他のファイルの変数参照
-
エクセル(複数インスタンス)...
-
VB6.0で、DLLを動的に参照したい
-
Form1上にあるTextBox1を Modul...
-
[Visual C#] 優先される処理に...
-
ASPX(C#)で別ファイルで自分で...
-
SQLを連続発行する時の正しい(?...
おすすめ情報