8

protected キーワードが機能するのと同じように、基本クラスのセッターにプライベート アクセスを許可し、継承クラスからのみアクセスできるようにすることは可能ですか?

public class MyDerivedClass : MyBaseClass
{
    public MyDerivedClass()
    {
        // Want to allow MyProperty to be set from this class but not
        // set publically
        public MyProperty = "abc";
    }
}

public class MyBaseClass
{
    public string MyProperty { get; private set; }
}
4

4 に答える 4

23

なぜあなたは使わないのですprotectedか?

public string MyProperty { get; protected set; }

保護 (C# リファレンス)

保護されたメンバーは、そのクラス内および派生クラス インスタンスからアクセスできます。

于 2013-08-15T10:11:40.943 に答える
3

次のようにセッターを保護する必要があるだけです。

public class MyDerivedClass : MyBaseClass
{
    public MyDerivedClass()
    {
        // Want to allow MyProperty to be set from this class but not
        // set publically
        MyProperty = "abc";
    }
}

public class MyBaseClass
{
    public string MyProperty { get; protected set; }
}

アクセス修飾子 (C# リファレンス)も参照してください。

于 2013-08-15T10:12:04.823 に答える
1

private の代わりにprotectedを使用します。

于 2013-08-15T10:11:56.857 に答える