有一些机制允许一个类只能在C#中被N个类继承吗?如何在C#中创建A类,其中A只能由B,C,D继承?
回答
你可以把它和派生类放在一个单独的程序集中,并声明基类的构造函数为internal
。这样,虽然你可以在不同的程序集中继承它,但是你不能实例化任何派生类。
可以使A类abstarct和任意数量的类继承它..
我认为在这种情况下,N = 3 – 2011-06-15 04:59:12
@Tom:请参阅由Abatishchev给出的答案,我只是想告诉相同的..我想过提示后,休息提问者可以谷歌... – Stuti 2011-06-15 05:09:25
没有,但你总是可以做,如果它超过了限制的构造函数抛出异常。
我怎么知道从A继承了多少个类? – 2011-06-15 05:02:16
在基类构造函数的散列表中记录'this'的类型。 – Koterpillar 2011-06-15 05:10:36
// can be inherited only by classes in the same assembly
public abstract class A
{
protected internal A() { }
}
// can't be inherited
public sealed class B : A
{
}
只是我个人的熏陶,我想在阅读题目是:“哦,非常非常糟糕的主意!有更多的了解业务环境,这使得这样的设计选择可取的,因为我的第一个thougt基类从来不应该知道任何事情(更糟糕的是:要规则)它的派生类“。
- 1. 如何写A :: B :: C => D给定A :: B :: C和(A,B,C)=> D?
- 2. SQL条件:(A = B AND C LIKE%D%)或(A LIKE%B%和C = D)
- 3. 从{a-b,b-c,c-a}改变为{(a,b),(b,c),(c,a)}?
- 4. 如何标准化范围[a,b]到[c,d],其中a映射到d,b映射到c
- 5. 对称字典其中d [a] [b] == d [b] [a]
- 6. 合并路径与Python,从/ A/B/C + C/d到/ A/B/C/d
- 7. {a,b,c,d,e} a,b-> c,a,b-> d和d-> e的最高范式是什么?
- 8. PHP变换阵列'a','b','c'到'a/b/c','a/b','a'
- 9. 从5,2,20,6,6到B,A,D,C,C
- 10. 对于A,B在C,d的Python
- 11. 方法B用于方法A;在继承类中,使A被覆盖B
- 12. 从类A调用类B并继承类A的属性?
- 13. Rails:使用模型has_many B belongs_to C return A其中B属于C,B最近为给定的A创建?
- 14. C#。如果(a ==(b或c或d))。可能吗?
- 15. C#:无法A型转换为B型,其中A = B
- 16. Haskell函数组合 - (a - > b) - >(a - > c) - >(b - > c - > d) - >(a - > d)
- 17. a = b || c在Python中
- 18. 如何查询:在类A,B和C
- 19. 在c编程(A^B^C)/(D * E)中插入后缀转换
- 20. 当B类从A类继承时,它是否必须是“B类是 - A类”?
- 21. 为条件执行MCDC(A && B && C)|| D
- 22. 如何让mod rewriteconds做'(A和B)或(C和D)'而不是'A和(B或C)和D'?
- 23. 如何以任意精度计算任意大的整数A,B,C和D的(A/B)的(C/D)根?
- 24. 如何在C#中编写exp(a/b)?
- 25. 只留下给定列表中未重复的元素。例如:(a b a a a c)给了我们(a b)
- 26. 如何在Scala中从a => b => c获取(a,b)=> c?
- 27. 如何在js中将字符串('a | b \\ | c')拆分为数组('a','b | c'')?
- 28. 逻辑:是(A &&!(B || C))|| (B || C)与(A || B || C)相同?
- 29. Style类A + B类和A类只
- 30. 从挤压元组(A,(B,C))至(A,B,C)中fsharp
在同一个程序集中是'B','C'和'D'吗? – 2011-06-15 04:47:20
这是否需要在运行时或编译时。 – rerun 2011-06-15 04:48:12
是否有特定的理由让你这样做?也许一个实际的例子会有帮助。 – Koterpillar 2011-06-15 04:48:36