2

基本クラスのメンバーを非表示にする方法はありますか?

class A
{
  public int MyProperty { get; set; }
}

class B : A
{
  private new int MyProperty { get; set; }
}

class C : B
{
  public C()
  {
    //this should be an error
    this.MyProperty = 5;
  }
}
4

1 に答える 1

1

C# 言語でメンバーを非表示にする手段はありません。あなたが得ることができる最も近いのは、EditorBrowsableAttribute.

public class B : A
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    new public int MyProperty {
        get;
        set;
    }
}

これが Visual Studio 以外のエディターで機能するという保証はないので、その上に例外をスローした方がよいでしょう。

public class B : A
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    public new int MyProperty {
        get {
            throw new System.NotSupportedException();
        }
        set {
            throw new System.NotSupportedException();
        }
    }
}
于 2012-05-25T02:39:38.820 に答える