7

C# コンパイラは、 を含む次のコードについて不平を言いますnew protected member declared in struct。何が問題ですか?

struct Foo {
    protected Object _bar;
}
4

3 に答える 3

9

MSDN ドキュメントから:

A struct cannot be abstract and is always implicitly sealed.

C# では、protected ではなく「private」を使用する必要があるようです。

于 2012-12-03T20:40:41.590 に答える
2

構造体は暗黙的に封印されているため、子孫を作成することはできず、保護された修飾子は、この型のインスタンスと派生型のすべてのインスタンスのみがそれにアクセスできることを意味します。

于 2012-12-03T19:14:26.207 に答える
2

これは構造体であるため、オーバーライドできません。C# コンパイラは、構造体のような封印された型が「保護された」キーワードではなく「プライベート」キーワードを使用することを望んでいるようですが、機能的には違いはありません。代わりにこれを使用してください:

struct Foo {
    private Object _bar;
}
于 2012-12-03T19:11:49.937 に答える