«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.

2
C # 'da Kovaryant ve Contravariant arayüzlerini anlama
Bunlara C # üzerinde okuduğum bir ders kitabında rastladım, ancak muhtemelen bağlam eksikliğinden dolayı bunları anlamakta güçlük çekiyorum. Orada ne oldukları ve ne işe yaradıkları hakkında iyi ve kısa bir açıklama var mı? Açıklama için düzenleyin: Kovaryant arayüz: interface IBibble<out T> . . Kontravariant arayüzü: interface IBibble<in T> . .

14
C # 'da, List <string> nesnesi List <object> değişkeninde neden depolanamıyor?
Görünüşe göre bir List nesnesi C # 'da bir List değişkeninde saklanamaz ve hatta açıkça bu şekilde değiştirilemez. List&lt;string&gt; sl = new List&lt;string&gt;(); List&lt;object&gt; ol; ol = sl; sonuç türü örtük System.Collections.Generic.List&lt;string&gt;olarakSystem.Collections.Generic.List&lt;object&gt; Ve sonra... List&lt;string&gt; sl = new List&lt;string&gt;(); List&lt;object&gt; ol; ol = (List&lt;object&gt;)sl; Can sonuçları değil türünü dönüştürmek System.Collections.Generic.List&lt;string&gt;içinSystem.Collections.Generic.List&lt;object&gt; …

1
ValueTuple'ı kovaryant yapan nedir?
Bu C # 7.3 (Çerçeve 4.8) 'de doğru bir şekilde derler: (string, string) s = ("a", "b"); (object, string) o = s; Bunun aşağıdakiler için sözdizimsel şeker olduğunu biliyorum, bu da doğru bir şekilde derleniyor: ValueTuple&lt;string, string&gt; s = new ValueTuple&lt;string, string&gt;("a", "b"); ValueTuple&lt;object, string&gt; o = s; Yani, ValueTuples …
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.