Поделиться через


Первым оператором этого Sub New должен быть явный вызов MyBase.New или MyClass.New, так как <имяКонструктора> в базовом классе <имяБазовогоКласса> для <имяПроизводногоКласса> отмечен как устаревший:

Обновлен: Ноябрь 2007

First statement of this 'Sub New' must 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, то при попытке использовать элемент компилятор выдает предупреждение.

Идентификатор ошибки: BC30919

Исправление данной ошибки

  • Сделайте вызов MyBase.New() или MyClass.New() первым оператором в производном классе Sub New.

См. также

Основные понятия

Атрибуты, используемые в Visual Basic

Применение атрибутов