gpt4 book ai didi

c# - “删除”基础成员?

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:50 25 4
gpt4 key购买 nike

有没有办法隐藏基类的成员?

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();
}
}
}

关于c# - “删除”基础成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10747719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com