|
1
2
我建议使用显式接口实现:
…但这不允许您在子类中公开和实现该方法,并且仍然将其隐藏。在这种情况下,您可能需要重新考虑您的类设计。 你最好的选择是这样的:
如果方法是从IMyInterface引用而不是MyInterfaceBase引用调用的,那么仍然存在让DoWork公开的问题。你根本绕不过去。如果我做了以下事情:
鉴于:
|
|
|
2
1
只能为公共成员定义接口。如果您希望一个方法只被定义为受保护的,那么不要为它创建接口,而只是将它创建为抽象基类的受保护的抽象成员。即使您要使用显式接口,如果实例是相关接口类型的case,那么它仍然可以公开访问。
|
|
|
3
1
无论何时编写接口,都是隐式声明实现它的任何类的公共视图,因此尝试隐藏其方法是毫无意义的。您可以将FunctionImplementation从接口中移除,并将其保留在MyBase类中。MyBase类的任何实现都可以访问它。 在这种情况下,还可以让my基类直接实现IOne和ITwo。
|
|
|
4
1
也许可以在抽象类中使方法成为虚拟的,然后抛出一个异常
我不知道这是不是一个愚蠢的解决方案,但至少你不允许用户使用这个方法,即使它是公共的。 |
|
|
5
1
|
|
EarthTurtle · 调整泛型抛出迭代器的异常类型 2 年前 |
|
wallop · 实现必须明确提及所有接口字段,还是可以跳过它们? 2 年前 |
|
|
Reelie · C#11-通过抽象类在接口中静态抽象成员? 2 年前 |
|
Addem · 在OCaml签名中放入类型声明的正确方法是什么 2 年前 |