有没有办法隐藏基类的成员?
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;
}
}
答案 0 :(得分: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();
}
}
}