私のクラスの 1 つが、プロジェクトの残りの部分から見えないようです。パブリックなものを使用する前に、どういうわけか初期化する必要があるのだろうか。
の関数とメソッドはClass1
IntelliSense にすぐに表示されますがClass2
、一般的な (不明な) オブジェクトのように扱われます。
と にいくつかのPublic Shared
機能がClass1
ありClass2
ます。を使用して関数を呼び出すことができます
Class1.myPublicSharedFunction()
通常は。ただし、 の関数でこれを試すとClass2
、エラーが発生します。
Error 1 Option Strict On disallows late binding.
それらの型はもちろん宣言されていますが。から作業中の関数をコピーして貼り付けて呼び出そうとすると、同じエラーが発生し始めますClass1
。Class2
私が宣言したテスト関数はClass2
、その型が認識されないため、遅延バインディングを行おうとしていると非難されます。
どちらのクラスも public であり、言及されているすべての関数はPublic Shared
. クラスの動作が異なる理由がわかりません。Class2
VB がその関数の型を認識する前 にロードまたはコンパイルする必要があるかのようですが、これらは VB ではおそらく自動的に行われます。
これの原因は何ですか?
入力を開始するClass2.
と、IntelliSense リストは関数としてClass1
認識されますが、クラスとして認識されます。
編集:行を新しい名前にClass2
変更するだけで、正確な内容を新しいクラスにコピーすると、すべてが正常に機能します。Public Class ...
名前が長すぎるのではないかと思ったので、クラスを にコピーしましたAnotherClassWithAReallyLongName
が、これも機能しました。
ただし、を削除class2
して再度追加し、その内容を貼り付けても、まだ機能しません。