類別 '<classname>' 沒有可存取的 'Sub New' 而且無法被繼承

更新:2007 年 11 月

類別會使用 Inherits 陳述式指定基底類別,但是它不能存取預期之基底類別的任何建構函式。

如果預期的基底類別沒有建構函式,或是建構函式的存取層級會阻止從另一個類別進行存取,則會發生此問題。

當您繼承類別時,建構函式應該會使用 MyBase 呼叫基底類別建構函式。如果您沒有進行此呼叫,甚至沒有撰寫明確的建構函式,則 Visual Basic 會產生呼叫 MyBase.New() 的隱含建構函式。

錯誤 ID:BC31399

若要更正這個錯誤

  1. 如果您在預期的基底類別上具有原始檔控制,則請至少變更其中一個建構函式的存取層級,讓其他類別也能存取它們。

  2. 如果您無法變更預期之基底類別建構函式的存取層級,則可自其他類別繼承,或是完全不繼承。

請參閱

概念

繼承基本概念

Visual Basic 中的存取層級

參考

Inherits 陳述式

MyBase

New (Visual Basic)