Итак, я работаю над проектом, который мне кто-то дал.
В проекте есть основной Namespace
, назовем его «Program
». В этом пространстве имен находится несколько разных классов.
Теперь мне пришлось наследовать класс в пространстве имен Devices
. Уже был другой класс, производный от объекта Device
. Итак, я пошел дальше, создал свой класс, включил его в пространство имен Devices
, унаследовал его от Device
и выполнил свою работу.
Но вскоре после этого я не смог использовать ни одну из базовых переменных, методов и так далее. Весь intellisense не работает с этим классом. И что еще хуже, кажется, что он не включен в сборку.
Как я могу заставить мой класс распознаваться Intellisense, сборкой и так далее? Я сделал тестовый класс, который выглядел только так:
Namespace Devices
Class Testcle
' ... Nothing
End Class
End Namespace
И он работал отлично. Он был включен в сборку, Intellisense работал и т.д. c.
Структура папок выглядела примерно так:
[Project]
↳ [-] Devices (Folder and Namespace)
[-] AlreadyExistingClassDerivedFromDevice (Folder)
↳ AlreadyExistingClassDerivedFromDevice.vb
[-] MyClassDerivedFromDevice (Folder)
↳ MyClassDerivedFromDevice.vb
↳ [+] Other (Folder)
↳ Testcle.vb
↳ Device.vb
Что-то мне не хватает? Например, есть ли скрытый параметр, который мне нужно активировать?
Изменить: объявления выглядят примерно так (но в разных файлах):
Device.vb
Namespace Devices
Public MustInherit Class Device
' ...
End Class
End Namespace
Это работает:
AlreadyExistingClassDerivedFromDevice.vb
Namespace Devices
Public NotInheritable Class AlreadyExistingClassDerivedFromDevice
Inherits Device
' ...
End Class
End Namespace
Это не работает:
MyClassDerivedFromDevice.vb
Namespace Devices
Public NotInheritable Class MyClassDerivedFromDevice
Inherits Device
' ...
End Class
End Namespace
Буквально нет разницы с наследующими классами. Только внутренняя работа. Но это не должно влиять на доступность ctor, Intellisense или чего-то еще, верно?