有没有办法隐藏基类的成员?
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;
}
}
有没有办法隐藏基类的成员?
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;
}
}
在 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();
}
}
}