类“<classname>”没有可访问的“Sub New”,不能被继承

更新:2007 年 11 月

某个类使用 Inherits 语句 指定一个基类,但该类无法访问所指定基类上的任何构造函数。

如果指定的基类没有构造函数,或者它的构造函数的访问级别不允许从其他类进行访问,就可能会发生这种情况。

在继承一个类时,您的构造函数应该使用 MyBase 调用基类构造函数。如果不进行此调用,或者,如果您甚至不编写一个显式的构造函数,Visual Basic 会生成一个调用 MyBase.New() 的隐式构造函数。

**错误 ID:**BC31399

更正此错误

  1. 如果您可以控制所指定基类的源代码,则应至少更改它的其中一个构造函数的访问级别,以便另一个类可以访问它们。

  2. 如果您无法更改所指定基类的构造函数的访问级别,则应继承一个不同的类,或者根本不继承任何类。

请参见

概念

继承的基础知识

Visual Basic 中的访问级别

参考

Inherits 语句

MyBase

New (Visual Basic)