![]() |
1
33
像迈克尔建议的那样超越他们 above 为了防止人们使用被覆盖的(SP?)方法,标记为已过时:
如果第二个parm设置为true,则如果有人试图调用该方法,并且第一个parm中的字符串是消息,则将生成编译器错误。如果parm2为false,则只会生成编译器警告。 |
![]() |
2
16
据我所知,虽然您不能阻止使用这些继承成员,但您应该能够使用 EditorBrowsableAttribute :
编辑: 只是在文档注释中看到了这一点,这使得它对于这个目的来说有点无用:
|
![]() |
3
13
您可以做的一件可能的事情是包含对象,而不是从另一个类进行扩展。这将在公开您想要公开的内容方面给予您最大的灵活性,但是如果您绝对需要对象是那种类型,它不是理想的解决方案(但是您可以从getter公开对象)。 因此:
变成:
或:
|
![]() |
4
8
我认为你最好的方法是考虑组合而不是继承。 或者,您可以创建一个具有您想要的成员的接口,让派生类实现该接口,并针对该接口编程。 |
![]() |
5
3
我知道有好几个答案,现在已经很老了,但是最简单的方法就是将它们声明为
考虑一个我目前正在研究的示例,其中我有一个API,它使第三方DLL中的每个方法都可用。我必须使用它们的方法,但我想使用.NET属性,而不是“getHisValue”和“settHisValue”方法。因此,我构建了第二个类,继承第一个类,生成使用get和set方法的属性,然后将原始get和set方法重写为private。对于任何想在上面构建不同内容的人来说,它们仍然是可用的,但是如果他们只想使用我正在构建的引擎,那么他们就可以使用属性而不是方法。
使用double类方法可以消除无法使用
现在,ValueEnum对这两个类都可用,但只有属性在ApiusGeClass类中可见。api class类对于希望扩展原始API或以其他方式使用它的人仍然可用,而apiusgeclass对于那些想要更简单的东西的人仍然可用。 最后,我将要做的是使Apiclass内部化,并且只公开继承的类。 |
![]() |
6
3
完全隐藏和标记不使用,包括智能感知,我相信这是大多数读者所期待的…
|
![]() |
7
1
我测试了所有建议的解决方案,它们并没有真正隐藏新成员。 但这一个是:
但是在代码后面它仍然是可访问的,所以添加和废弃属性
|
![]() |
8
0
您可以使用接口
|
|
CasualNobody · 公开UserControls内容模板 7 年前 |
![]() |
Tom · WPF中相同usercontrol的不同实例中的不同值 7 年前 |
![]() |
Johannes · 从UserControl获取绑定列表 7 年前 |
![]() |
Mike Eason · 在数据触发器中使用依赖属性 10 年前 |