有一些機制允許一個類只能在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