Один из моих классов кажется невидимым для остальной части моего проекта.Интересно, нужно ли мне как-то инициализировать его, прежде чем я смогу использовать его общедоступные вещи.
Функции и методы Class1
немедленно появляются в IntelliSense, но Class2
обрабатывается как обычный (неизвестный) объект.
У меня есть Public Shared
функции в Class1
и Class2
.Я могу вызывать функции, используя
Class1.myPublicSharedFunction()
в обычном режиме.Однако, когда я пытаюсь сделать это с любой функцией из Class2
, я получаю ошибку:
Error 1 Option Strict On disallows late binding.
, даже если их типы, конечно, объявлены.Если я скопирую и вставлю рабочую функцию из Class1
в Class2
и попытаюсь вызвать ее, она начнет выдавать ту же ошибку.Любая тестовая функция, которую я объявляю в Class2
, не распознается своим типом и поэтому обвиняется в попытке выполнить позднюю привязку.
Оба класса являются общедоступными, и все упомянутые функции Public Shared
.Я не понимаю, что заставляет классы работать по-другому.Это как если бы мне нужно было загрузить или скомпилировать Class2
до того, как VB узнает свои типы функций, но эти вещи предположительно автоматические в VB.
Что может быть причиной этого?
Когда я начинаю печатать Class2.
, списки IntelliSense являются функцией, а Class1
распознается как класс.
РЕДАКТИРОВАТЬ: Если я копирую точное содержимое Class2
вновый класс, только изменяя строку Public Class ...
на новое имя, все работает как обычно.Я подумал, что это может быть слишком длинное имя, поэтому я скопировал класс в AnotherClassWithAReallyLongName
, но этот тоже сработал.
Однако, если я удалю class2
, добавлю его заново и вставлю обратно его содержимоеэто все равно не сработает.