C# コンパイラは、 を含む次のコードについて不平を言いますnew protected member declared in struct
。何が問題ですか?
struct Foo {
protected Object _bar;
}
C# コンパイラは、 を含む次のコードについて不平を言いますnew protected member declared in struct
。何が問題ですか?
struct Foo {
protected Object _bar;
}
MSDN ドキュメントから:
A struct cannot be abstract and is always implicitly sealed.
C# では、protected ではなく「private」を使用する必要があるようです。
構造体は暗黙的に封印されているため、子孫を作成することはできず、保護された修飾子は、この型のインスタンスと派生型のすべてのインスタンスのみがそれにアクセスできることを意味します。
これは構造体であるため、オーバーライドできません。C# コンパイラは、構造体のような封印された型が「保護された」キーワードではなく「プライベート」キーワードを使用することを望んでいるようですが、機能的には違いはありません。代わりにこれを使用してください:
struct Foo {
private Object _bar;
}