NotOverridable プロパティの Get ステートメントまたは Set ステートメントには、Private キーワードが含まれています。
Property ステートメントで NotOverridable と Private を組み合わせて指定できない理由は、次のとおりです。
基底クラスのプロパティやプロシージャをオーバーライドしていないプロパティやプロシージャには、既定で NotOverridableが設定されます。
しかし、基底クラスのプロパティやプロシージャをオーバーライドした派生クラスのプロパティやプロシージャには、既定で Overridableが設定されます。 オーバーライドの階層構造を終了するには、
NotOverridableでオーバーライドを宣言します。 このコンテキストは、NotOverridableが使用できる唯一のものです。 つまり、NotOverridableは Overridesが設定されます。基底クラスのプロパティまたはプロシージャが Privateとして宣言されている場合、派生クラスはそのプロパティまたはプロシージャにアクセスできないため、それをオーバーライドできません。 このため、
PrivateをOverridableと組み合わせて使用することはできません。プロパティやプロシージャをオーバーライドするには、オーバーライドしているプロパティやプロシージャとシグネチャが同じで、アクセス レベルも同じでなければなりません。 つまり、オーバーライドしているプロパティやプロシージャには
Privateを指定できないということです。オーバーライド可能なプロパティやプロシージャには、Privateを指定できないからです。NotOverridableを指定できるのは、オーバーライドしているプロパティやプロシージャだけです。そのため、これをPrivateと組み合わせて指定することはできません。
同じ理由から、オーバーライドしているプロパティの個別のプロパティ プロシージャ (Get および Set) を Privateにすることはできません。
エラー ID: BC31106
このエラーを解決するには
PrivateキーワードをGetステートメントまたはSetステートメントから削除するか、OverridesキーワードまたはNotOverridableキーワードを、Propertyステートメントから削除します。
関連項目
.NET