Bir sınıfın N sınıfları tarafından yalnızca C# içinde miras almasına izin veren bazı mekanizmalar var mı?C# içinde A sınıfını nasıl oluşturabilirim? A, yalnızca B, C, D mirasını alabilir?
cevap
Bunu koyabilirsiniz ve ayrı bir derlemede sınıfları türetilmiş olabilir ve temel sınıfın kurucusunu internal
olarak bildirebilirsiniz. Bu şekilde farklı bir mecliste miras alsanız da, türetilmiş herhangi bir sınıfı başaramazsınız.
için bir kesmek ile gelebilecekse ilginç olurdu Nasıl miras kalıyor, ancak nasıl başaramazsınız? – Mehrdad
@Mehrdad: Türetilen sınıf, tabanının yapıcısını çağırdığı için, bu kurucuya erişebilmesi gerekir. 'Dahili' seçeneğine erişim, yalnızca aynı montajda (veya arkadaş montajlarında) türetilmiş sınıfların üssü aramalarına izin verir. Ayrıca türetilmiş sınıfların “mühürlenmiş” olması gerektiği de unutulmamalıdır. –
@Travis: Ama türetilmiş sınıfların somutlaştırılmadığını nasıl uygulayabilirsin? – Mehrdad
Sen sınıfı A Perle GEDİK yapmak ve sınıfların herhangi bir sayı içinde devralabilir ..
Bu durumda düşünüyorum N = 3 –
@ Tom: Abatishchev tarafından verilen cevaba bakın, sadece aynı şeyi anlatmak istedim .. Ben ipucu sonra düşündüm, soru soran google olabilir ... – Stuti
Hayır, ama her zaman sınırını aşarsa yapıcı bir istisna yapabilirsiniz.
kaç sınıf A'dan miras alır? –
Temel sınıf yapıcısında bir hashtable içinde 'this' kayıt tipleri. – Koterpillar
// 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
{
}
Sadece benim kişisel yetiştirme için, "Ah, çok çok kötü bir fikir! A idi başlığı okuduktan benim ilk düşüncenin beri böyle bir tasarım seçimi arzu yapmak iş bağlamında, hakkında daha fazla bilgi edinmek istiyorsunuz baz sınıfı ASLA türetilmiş sınıfları bir şey (ve daha kötüsü: kural) bilmek gerekiyordu.
- 1. Nasıl A $ B $ C $ D veya A% B% C% D A $$$ B itibaren $$$$$$ C $$$$$$$$$ D string in SQL Server?
- 2. "a/b/c" öğesini "a/b/c", "a/b", "a" olarak dönüştürmenin en kolay yolu
- 3. [: b (lvar)] 'ı Clojure core.logic dosyasındaki [[: a: A] [: b: B] [: c: C]] sayfasından nasıl kaldırabilirim?
- 4. HTTP yönlendiriciden geçmek (Site A, B, C - A - C)?
- 5. R - A, B ve * en yakın * C?
- 6. Tamsayı çözümü hakkında a + b + c = 2
- 7. Neden Numpy a + = b ve a = a + b farklı davranır
- 8. C# eşdeğeri sql değerinin "Burada IN değeri ('a', 'b', 'c')"
- 9. Mongoid ile "(A VEYA B) VE (A VEYA C)" sorgularını nasıl yazıyorsunuz?
- 10. b sıfır olmadığında her zaman (a/b * b) + a% b == a `var mı?
- 11. fread() a içinde bir yapı c
- 12. piton - sadece 'a', 'b' veya
- 13. A/B testi alaka
- 14. Python Atama Operatörü Önceliği - (a, b) = a [b] = {},
- 15. A/B çerçeve?
- 16. Ruby - üste etkinleştirme/çoklu atama (örneğin `a, b, c = d, e f`)
- 17. Emacs: C-a çalışmıyor
- 18. A ve B noktaları arasında ses çalma
- 19. A sözlükleri listesi A ile Python'da A ve C'nin ortak özelliklerine sahip olan B listesinin C listesi ile mi eşleştiriliyor?
- 20. Xamarin (C#) - A TextView'un program kullanarak Altını A Way mı?
- 21. İki diziler, A ve B. Başka dizide
- 22. Açısal ve A/B testleri
- 23. farkı ne:, (a, b) = (1,2)
- 24. "Kapalı" olarak nasıl örtülü olarak erişebilirim, yani [A: B] veya [A <% B] hatalarını nasıl çözebilirim?
- 25. Dplyr, = (a = b) 'ye katılıyor, burada a ve b dizeleri içeren değişkenler var mı?
- 26. Geçiş A olayı ben
- 27. Neden Ruby'de a = a `` nil`?
- 28. "Ya a b" türüyle nasıl eşleşiyorsunuz?
- 29. varlık çerçevesi: "A = substring (B)" kuralına katıl?
- 30. eğer cevap == "M": print (mult (a, b))
B ', 'C' ve' D' aynı düzenekte mi? –
Bunun çalışma zamanında olması veya zamanı derlemesi gerekir. – rerun
Bunu yapmanın belirli bir nedeni var mı? Belki de gerçek bir örnek yardımcı olacaktır. – Koterpillar