1
2
我建议使用显式接口实现:
…但这不允许您在子类中公开和实现该方法,并且仍然将其隐藏。在这种情况下,您可能需要重新考虑您的类设计。 你最好的选择是这样的:
如果方法是从IMyInterface引用而不是MyInterfaceBase引用调用的,那么仍然存在让DoWork公开的问题。你根本绕不过去。如果我做了以下事情:
鉴于:
|
2
1
只能为公共成员定义接口。如果您希望一个方法只被定义为受保护的,那么不要为它创建接口,而只是将它创建为抽象基类的受保护的抽象成员。即使您要使用显式接口,如果实例是相关接口类型的case,那么它仍然可以公开访问。
|
3
1
无论何时编写接口,都是隐式声明实现它的任何类的公共视图,因此尝试隐藏其方法是毫无意义的。您可以将FunctionImplementation从接口中移除,并将其保留在MyBase类中。MyBase类的任何实现都可以访问它。 在这种情况下,还可以让my基类直接实现IOne和ITwo。
|
4
1
也许可以在抽象类中使方法成为虚拟的,然后抛出一个异常
我不知道这是不是一个愚蠢的解决方案,但至少你不允许用户使用这个方法,即使它是公共的。 |
5
1
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |