SORU
2 Temmuz 2009, PERŞEMBE


Her zaman IEnumerable<T> yerine IList< return;> T gerekir mi?

Öğeleri bir dizi döndüren bir DAL ya da diğer kodumu yazıyorum, her zaman benim geri bildirimi yapayım:

public IEnumerable<FooBar> GetRecentItems()

ya

public IList<FooBar> GetRecentItems()

Şu anda benim kod IEnumerable mümkün olduğunca kullanmaya çalışıyorum ama eğer bu en iyi yöntem ise emin değilim? Hala ne işe yaradığını açıklayıcı olurken en genel türü dönüyordum çünkü doğru gibi görünüyordu, ama belki de bunu yapmak için doğru değil.

CEVAP
3 Temmuz 2009, Cuma


Çerçeve tasarımı arayan veya ReadOnlyCollection sadece okumak için koleksiyonlar tarafından değiştirilebilir bir koleksiyon dönmek için gereken zaman sınıfını kullanarak Collection tavsiye ederim.

Bu basit bir IList tercih sebebi IList eğer onun sadece okumak ya da değil, eğer arayanın bilgi yok.

IEnumerable<T> bunun yerine, belirli işlemleri gerçekleştirmek için arayan için biraz daha zor olabilir. Ayrıca artık arayan toplama değiştirmek için esneklik olabilir veya istemeyebilirsiniz bir şey verecek.

SERİ birkaç hileler onun kol içerir ve bazı çağrılarda yapılmaktadır Türüne göre optimize olacağını unutmayın. Sayımı gerçekleştirmek ve temel koleksiyonuna bir Liste varsa, örneğin, tüm unsurları ile yürüyüş DEĞİL.

Şahsen, bir ORM için muhtemelen benim dönüş değeri Collection<T> sopa ile olur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BuzzFeedVideo

    BuzzFeedVide

    10 AĞUSTOS 2011
  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • POGProductionz

    POGProductio

    27 NİSAN 2012