Первой инструкцией этого Sub New должен быть явный вызов MyBase.New или MyClass.New, так как <имяКонструктора> в базовом классе <имяБазовогоКласса> <имяПроизводногоКласса> помечен как устаревший.
Обновлен: Ноябрь 2007
First statement of this 'Sub New' should be an explicit call to 'MyBase.New' or 'MyClass.New' because the '<constructorname>' in the base class '<baseclassname>' of '<derivedclassname>' is marked obsolete.
Конструктор класса не вызывает явно конструктор базового класса и неявный конструктор базового класса помечен атрибутом ObsoleteAttribute, это является причиной возникновения предупреждения.
Если конструктор производного класса не вызывает конструктор базового класса, то Visual Basic пытается создать неявный вызов конструктора базового класса без параметров. Если в базовом классе нет доступного конструктора, который можно вызывать без аргументов, то Visual Basic не удается создать неявный вызов. В этом случае необходимый конструктор помечается атрибутом ObsoleteAttribute, и поэтому Visual Basic не может вызвать его.
С помощью атрибута ObsoleteAttribute можно пометить любой элемент программирования как более неиспользуемый. После этого можно задать для свойства IsError атрибута значение True или False. Если задано значение True, то компилятор рассматривает попытку использования элемента как ошибку. Если задать значение False или оставить используемое по умолчанию значение False, то компилятор выдает предупреждение при попытке использования элемента.
По умолчанию это сообщение является предупреждением, поскольку свойство IsErrorObsoleteAttribute имеет значение False. Дополнительные сведения о скрытии предупреждений или обработке предупреждений в качестве ошибок см. в разделе Настройка предупреждений в Visual Basic.
Идентификатор ошибки: BC41003
Исправление этой ошибки
- Сделайте вызов MyBase.New() или MyClass.New() первым оператором в производном классе Sub New.