1

私のクラスの 1 つが、プロジェクトの残りの部分から見えないようです。パブリックなものを使用する前に、どういうわけか初期化する必要があるのだろうか。

の関数とメソッドはClass1IntelliSense にすぐに表示されますがClass2、一般的な (不明な) オブジェクトのように扱われます。

と にいくつかのPublic Shared機能がClass1ありClass2ます。を使用して関数を呼び出すことができます

Class1.myPublicSharedFunction()

通常は。ただし、 の関数でこれを試すとClass2、エラーが発生します。

Error   1   Option Strict On disallows late binding.

それらの型はもちろん宣言されていますが。から作業中の関数をコピーして貼り付けて呼び出そうとすると、同じエラーが発生し始めますClass1Class2私が宣言したテスト関数はClass2、その型が認識されないため、遅延バインディングを行おうとしていると非難されます。

どちらのクラスも public であり、言及されているすべての関数はPublic Shared. クラスの動作が異なる理由がわかりません。Class2VB がその関数の型を認識する前 にロードまたはコンパイルする必要があるかのようですが、これらは VB ではおそらく自動的に行われます。

これの原因は何ですか?

入力を開始するClass2.と、IntelliSense リストは関数としてClass1認識されますが、クラスとして認識されます。

編集:行を新しい名前にClass2変更するだけで、正確な内容を新しいクラスにコピーすると、すべてが正常に機能します。Public Class ...名前が長すぎるのではないかと思ったので、クラスを にコピーしましたAnotherClassWithAReallyLongNameが、これも機能しました。
ただし、を削除class2して再度追加し、その内容を貼り付けても、まだ機能しません。

4

1 に答える 1

1

コメントによると、「Class2」という名前のコードに、新しいクラス定義を隠している何かがあります。それを削除/名前を変更すると、クラスが機能します。

于 2011-06-17T23:25:42.733 に答える