![]() |
1
6
如果你只想阻止实例化
|
![]() |
2
1
我看这个不错。使用小接口可以更容易地编写分离代码。 |
![]() |
3
1
我不知道这是否有用,但你可以让你的基类内部受到保护。这意味着任何内部类都可以访问它,就好像它是公共的一样,或者任何类(从程序集内部和外部)都可以对基类进行子类化。但这不会阻止人们实现自己的子类。 或者,通过一个接口公开是我认为最好的方式。 |
![]() |
4
1
为此,您可以选择如下显式实现:
你可以参考类似的帖子 C# Interfaces. Implicit implementation versus Explicit implementation |
![]() |
5
0
把你的基类抽象化。 |
![]() |
6
0
您可以将接口公开为公共的,实现该类的内部密封实现,并使用工厂方法构建所需接口的实例。这样,客户机永远不会知道您何时更改实现,或者您是否在工厂中插入了同一基本接口的多个实现。您还可以消除接口中的set访问器,并将它们放在内部实现中,以便只向外部公开属性。这样,外部代码就可以减少对实现的假设,并且可以更好地隔离。如果我对这种方法的印象不好,请纠正我。 编辑:工厂将是公共的,您需要某种“传输对象”来向工厂传递数据。传输对象实现将是公共的,以及它的接口。 |
![]() |
7
0
你的例子似乎包括了一个利用遗传优势的糟糕例子。因为你只包含了一个属性,而且无法给出更好的例子,所以我猜它是真的。在这种情况下,我建议忘记基类并将属性粘在派生的上。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |