«covariance» etiketlenmiş sorular

Kovaryans, kontravaryans ve değişmezlik, mevcut tür kalıtım hiyerarşisinin bir tür dönüşüme (geneller içinde kullanım gibi) maruz kaldığında nasıl değiştiğini açıklar. Dönüşüm, orijinal hiyerarşinin sırasını koruyorsa, "ortak değişken" dir. Tersine çevirirse, "aykırıdır". Eğer onu kırarsa, "değişmez" dir.



9
Kovaryans ve karşıtlık gerçek dünya örneği
Gerçek dünyada kovaryans ve karşıtlığı nasıl kullanacağımı anlamakta biraz sorun yaşıyorum. Şimdiye kadar gördüğüm tek örnek aynı eski dizi örneği oldu. object[] objectArray = new string[] { "string 1", "string 2" }; Başka bir yerde kullanıldığını görebilseydim, gelişimim sırasında kullanmama izin verecek bir örnek görmek güzel olurdu.
162 c#  c#-4.0  covariance 

8
Diziler neden kovaryant, fakat jenerikler değişmez?
Joshua Bloch'un Etkili Java'sından, Diziler, genel türden iki önemli şekilde farklıdır. İlk diziler kovaryanttır. Jenerikler değişmezdir. Kovaryant, basitçe, X, Y'nin alt tipi ise, X [] 'nin de Y [] alt tipi olacağı anlamına gelir. Diziler kovaryanttır Dize Object So alt türü olduğu için String[] is subtype of Object[] Değişmez, X'in …

4
Neden kovaryans ve kontravarlık değer türünü desteklemiyor?
IEnumerable<T>bir ko-varyantı ancak değeri türü, sadece tek referans türü desteklemez. Aşağıdaki basit kod başarıyla derlenmiştir: IEnumerable<string> strList = new List<string>(); IEnumerable<object> objList = strList; Ama değişen stringTo intderlenmiş hatayı alırsınız: IEnumerable<int> intList = new List<int>(); IEnumerable<object> objList = intList; Nedeni MSDN'de açıklanmıştır : Varyans yalnızca referans türleri için geçerlidir; Bir …



7
X'den y'ye eş varyant dizi dönüşümü, çalışma zamanı istisnasına neden olabilir
Bir s ( ) private readonlylistem var . Daha sonra bu listeye s ve bu etiketleri aşağıdaki gibi ekleyin :LinkLabelIList<LinkLabel>LinkLabelFlowLayoutPanel foreach(var s in strings) { _list.Add(new LinkLabel{Text=s}); } flPanel.Controls.AddRange(_list.ToArray()); Resharper gösterileri Bana bir uyarı: Co-variant array conversion from LinkLabel[] to Control[] can cause run-time exception on write operation. Lütfen anlamama …

2
C # 'da jeneriklerle kovaryans kontravansını anlama sorunu
Aşağıdaki C # kodunun neden derlenmediğini anlayamıyorum. Gördüğünüz gibi, statik bir jenerik yöntemim var Bir IEnumerable<T>parametreye sahip bir şey (ve Tbir IAarabirim olarak sınırlandırılmıştır ) ve bu parametre örtük olarak IEnumerable<IA>. Açıklaması nedir? (Neden işe yaramadığını anlamak için bir çözüm aramıyorum). public interface IA { } public interface IB : …

3
Kovaryans, Değişmezlik ve Kontravaryans düz İngilizce ile açıklanıyor mu?
Bugün Java'da Covariance, Contravariance (ve Invariance) hakkında bazı makaleler okudum. İngilizce ve Almanca Wikipedia makalesini ve IBM'den bazı diğer blog gönderilerini ve makaleleri okudum. Ama bunların tam olarak ne hakkında olduğu konusunda hala biraz kafam karıştı. Bazıları bunun türler ve alt türler arasındaki ilişki hakkında olduğunu söyler, bazıları bunun tür …

2
Genel Kovaryans ve Kontra-varyans C # 4.0'da Nasıl Uygulanır?
PDC 2008'e katılmadım, ancak C # 4.0'ın Genel kovaryansı ve ters varyansı desteklediğine dair bazı haberler duydum. Yani, List<string>atanabilir List<object>. Bu nasıl olabildi? Jon Skeet'in C # in Depth adlı kitabında , C # jeneriklerinin neden kovaryansı ve ters varyansı desteklemediği açıklanıyor. Esas olarak güvenli kod yazmak içindir. Şimdi, C …

3
Java'da hem aşırı yükleme hem de geçersiz kılma durumlarında kovaryans ve kontravarlık gösteren işlevlere örnekler verin. [kapalı]
Kapalı . Bu soruya daha çok odaklanılması gerekiyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek mi istiyorsunuz? Soruyu yalnızca bu gönderiyi düzenleyerek tek bir soruna odaklanacak şekilde güncelleyin . 5 yıl önce kapalı . Bu soruyu geliştirin Java'da kovaryans ve kontravans için lütfen iyi bir örnek gösterin.


3
Scala'nın değişmez Seti neden türünde eşdeğişken değil?
DÜZENLEME : Bu soruyu orijinal cevaba göre yeniden yazdı scala.collection.immutable.SetSınıf kendi türü parametresinde covariant değil. Bu neden? import scala.collection.immutable._ def foo(s: Set[CharSequence]): Unit = { println(s) } def bar(): Unit = { val s: Set[String] = Set("Hello", "World"); foo(s); //DOES NOT COMPILE, regardless of whether type is declared //explicitly in …

9
C #, dönüş türü kovaryansı destekliyor mu?
.NET çerçevesi ile çalışıyorum ve gerçekten tüm web sitemin kullandığı özel bir sayfa türü yapabilmek istiyorum. Sorun sayfaya bir kontrolden erişmeye çalıştığımda ortaya çıkıyor. Varsayılan sayfa yerine belirli türdeki sayfamı döndürebilmek istiyorum. Bunu yapmanın bir yolu var mı? public class MyPage : Page { // My own logic } public …
88 c#  covariance 

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.