«generics» etiketlenmiş sorular

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

4
.NET'in Liste a'nın Liste b'deki tüm öğeleri içerip içermediğini kontrol etmenin bir yolu var mı?
Aşağıdaki yönteme sahibim: namespace ListHelper { public class ListHelper<T> { public static bool ContainsAllItems(List<T> a, List<T> b) { return b.TrueForAll(delegate(T t) { return a.Contains(t); }); } } } Bunun amacı, bir Listenin başka bir listenin tüm unsurlarını içerip içermediğini belirlemektir. Bana öyle geliyor ki, bunun gibi bir şey zaten .NET'te …
100 c#  .net  list  generics  mono 

5
MIN ve MAX makroları için Swift eşdeğeri
C / Objective-C'de MIN ve MAX makrolarını kullanarak iki sayı arasındaki minimum ve maksimum değeri bulmak mümkündür. Swift, makroları desteklemiyor ve dil / temel kitaplıkta eşdeğerleri yok gibi görünüyor. Biri belki böyle jenerik dayanan, özel bir solüsyon ile gitmeli biri ?
99 generics  swift 


11
Birden çok öğe koleksiyonunu birleştirmenin zarif bir yolu mu?
Her biri aynı türde nesneler içeren (örneğin, List<int> foove List<int> bar) rastgele sayıda koleksiyonum olduğunu varsayalım . Bu koleksiyonların kendileri bir koleksiyonda olsaydı (örneğin, türden List<List<int>>, SelectManyhepsini tek bir koleksiyonda birleştirmek için kullanabilirdim . Ancak bu koleksiyonlar halihazırda aynı koleksiyonda değilse, benim izlenimime göre şöyle bir yöntem yazmalıyım: public static …

7
C # jeneriklerinde geçersiz?
İstek alan ve yanıt veren genel bir yöntemim var. public Tres DoSomething<Tres, Treq>(Tres response, Treq request) {/*stuff*/} Ancak isteğim için her zaman bir yanıt istemiyorum ve bir yanıt almak için her zaman istek verilerini beslemek istemiyorum. Ayrıca küçük değişiklikler yapmak için yöntemleri bütünüyle kopyalayıp yapıştırmak zorunda kalmak istemiyorum. İstediğim, bunu …
98 c#  generics 


10
İlkel int listesi oluşturulsun mu?
Java'da aşağıdaki gibi ilkel int veya herhangi bir ilkel liste oluşturmanın bir yolu var mı? List<int> myList = new ArrayList<int>(); Yapabilirim gibi görünüyor List myList = new ArrayList(); ve bu listeye "int" ekleyin. Ama bu, bu listeye her şeyi ekleyebileceğim anlamına gelir. Tek seçeneğim, bir int dizisi oluşturmak ve onu …


6
Genel bir türün dizge olup olmadığını test etmenin en iyi yolu? (C #)
İlkel olsun olmasın her türe izin vermesi gereken genel bir sınıfım var. Bununla ilgili tek sorun kullanmaktır default(T). Bir değer türü veya dizede varsayılanı çağırdığınızda, onu makul bir değerle başlatır (boş dize gibi). Bir default(T)nesneyi çağırdığınızda null döndürür. Çeşitli nedenlerden dolayı, ilkel bir tür değilse, o zaman null değil , …
96 c#  generics 

7
Dictionary <TKey, TValue> girişleri için koleksiyon başlatıcı kullanabilir miyim?
Sonraki kod parçası için bir koleksiyon başlatıcı kullanmak istiyorum: public Dictionary&lt;int, string&gt; GetNames() { Dictionary&lt;int, string&gt; names = new Dictionary&lt;int, string&gt;(); names.Add(1, "Adam"); names.Add(2, "Bart"); names.Add(3, "Charlie"); return names; } Bu nedenle tipik olarak şöyle bir şey olmalıdır: return new Dictionary&lt;int, string&gt; { 1, "Adam", 2, "Bart" ... Ama bunun …

8
Liste <T> .Contains () çok mu yavaş?
Biri bana jenerik List.Contains()işlevinin neden bu kadar yavaş olduğunu açıklayabilir mi? Bir var List&lt;long&gt;yaklaşık bir milyon sayılar ve bu sayıların içinde belirli sayıda varsa sürekli kontrol ediyor koduyla. Aynı şeyi Dictionary&lt;long, byte&gt;ve Dictionary.ContainsKey()işlevini kullanarak yapmayı denedim ve Listeden yaklaşık 10-20 kat daha hızlıydı. Elbette, Sözlüğü bu amaçla kullanmak istemiyorum, çünkü …
94 .net  arrays  generics  list 



5
C # Generics'te "varsayılan" tür parametrelere makul bir yaklaşım var mı?
C ++ şablonlarında, belirli bir tür parametresinin varsayılan olduğu belirtilebilir. Yani, açıkça belirtilmedikçe, T tipini kullanacaktır. Bu C # ile yapılabilir veya yaklaştırılabilir mi? Şunun gibi bir şey arıyorum: public class MyTemplate&lt;T1, T2=string&gt; {} Böylece, açıkça belirtmeyen türden bir örnek T2: MyTemplate&lt;int&gt; t = new MyTemplate&lt;int&gt;(); Esasen şunlar olabilir: MyTemplate&lt;int, …


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.