«generics» etiketlenmiş sorular

Jenerikler, .NET dilleri, Java, Swift ve Rust gibi çeşitli dillerde bulunan bir tür parametrik polimorfizmdir.

18
Tek bir öğeyi IEnumerable <T> olarak iletme
Tek bir öğe türünü parametre Tbekleyen bir yönteme geçirmenin yaygın bir yolu var mı IEnumerable&lt;T&gt;? Dil C #, çerçeve sürümü 2.0. Şu anda bir yardımcı yöntem kullanıyorum (bu. Net 2.0, bu yüzden döküm / projelendirme yardımcı yöntemleri LINQ benzer bir sürü var), ama bu sadece aptalca görünüyor: public static class …
377 c#  .net  generics  ienumerable 


12
Operatör ==, C # içindeki genel türlere uygulanamaz mı?
Belgelerine göre ==operatör MSDN , Önceden tanımlanmış değer türleri için, işlenenlerinin değerleri eşitse eşitlik operatörü (==) true değerini, aksi takdirde false değerini döndürür. Dize dışındaki başvuru türleri için, iki işleneni aynı nesneye başvuruyorsa == true değerini döndürür. Dize türü için ==, dizelerin değerlerini karşılaştırır. Kullanıcı tanımlı değer türleri == operatörünü …


8
Verim iadesi kullanılarak sayısız ve özyineleme
IEnumerable&lt;T&gt;Bir WebForms sayfasında denetimleri bulmak için kullandığım bir yöntem var. Yöntem özyinelemeli ve yield returnözyinelemeli çağrının değeri returnig olduğunda istediğim türü döndüren bazı sorunlar yaşıyorum . Kodum aşağıdaki gibi görünüyor: public static IEnumerable&lt;Control&gt; GetDeepControlsByType&lt;T&gt;(this Control control) { foreach(Control c in control.Controls) { if (c is T) { yield return c; …




13
C # içindeki genel argümanın boş veya varsayılan karşılaştırması
Ben böyle tanımlanmış genel bir yöntem var: public void MyMethod&lt;T&gt;(T myArgument) Yapmak istediğim ilk şey, myArgument değerinin bu tür için varsayılan değer olup olmadığını kontrol etmektir: if (myArgument == default(T)) Ancak bu derlenmez çünkü T'nin == operatörünü uygulayacağını garanti etmedim. Bu yüzden kodu şu şekilde değiştirdim: if (myArgument.Equals(default(T))) Şimdi bu …
288 c#  generics 

11
Genel parametre olarak boş değer türü mümkün mü?
Böyle bir şey yapmak istiyorum: myYear = record.GetValueOrNull&lt;int?&gt;("myYear"), Null olabilecek türe genel parametre olarak dikkat edin. Yana GetValueOrNullişlev boş geri dönebilirler benim ilk girişimi şuydu: public static T GetValueOrNull&lt;T&gt;(this DbDataRecord reader, string columnName) where T : class { object columnValue = reader[columnName]; if (!(columnValue is DBNull)) { return (T)columnValue; } …
288 c#  generics 

6
Mockito'nun sınıfları genel parametrelerle alay etmek için kullanma
Genel parametrelerle bir sınıfı alay etmenin temiz bir yöntemi var mı? Diyelim ki bir sınıf Foo&lt;T&gt;için a Foo&lt;Bar&gt;. Aşağıdakileri yeterince kolayca yapabilirim: Foo mockFoo = mock(Foo.class); when(mockFoo.getValue).thenReturn(new Bar()); Varsayım getValue(), genel türü döndürür T. Ama bunu daha sonra beklediğim bir yönteme geçirdiğimde yavru kedi olacak Foo&lt;Bar&gt;. Döküm bunu yapmanın tek …
280 java  generics  mockito 

5
Scala'da daha yüksek türde olan nedir?
Web'de aşağıdakileri bulabilirsiniz: Daha yüksek tür türü == tür oluşturucu? class AClass[T]{...} // For example, class List[T] Bazıları bunun daha yüksek bir tür olduğunu söylüyor, çünkü tanımla uyumlu olacak türler üzerine soyutlanıyor. Daha yüksek tür türleri , diğer türleri alan ve yeni bir tür oluşturan türlerdir Bunlar tip yapıcı olarak …

17
Java'da genel dizi türleri oluşturamamamın nedeni nedir?
Java'nın yapmamıza izin vermemesinin nedeni nedir private T[] elements = new T[initialCapacity]; .NET'te bunu yapmamıza izin vermediğini anlayabiliyordum, çünkü .NET'te çalışma zamanında farklı boyutlara sahip olabileceğiniz değer türlerine sahipsiniz, ancak Java'da her türlü T nesne referansı olacak, böylece aynı boyuta sahip olacak ( Yanlışsam düzelt). Sebebi nedir?

3
Collections.emptyList () bir <Object> Listesi döndürür?
Genel tür parametrelerini çıkarmak için Java'nın kuralında gezinirken sorun yaşıyorum. İsteğe bağlı bir liste parametresine sahip olan aşağıdaki sınıfı düşünün: import java.util.Collections; import java.util.List; public class Person { private String name; private List&lt;String&gt; nicknames; public Person(String name) { this(name,Collections.emptyList()); } public Person(String name,List&lt;String&gt; nicknames) { this.name = name; this.nicknames = …

14
Genel java.util.List türünü edinin
Sahibim; List&lt;String&gt; stringList = new ArrayList&lt;String&gt;(); List&lt;Integer&gt; integerList = new ArrayList&lt;Integer&gt;(); Listenin genel türünü almanın (kolay) bir yolu var mı?
262 java  generics 

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.