SORU
11 Mayıs 2011, ÇARŞAMBA


Neden dizi uygular IList?

Tanımına bakınSistem.Dizisınıf

public abstract class Array : IList, ...

Teorik olarak, bu bit yazmak ve mutlu olmak gerekir

int[] list = new int[] {};
IList iList = (IList)list;

Ben de ılist herhangi bir yöntem aramak gerekir

 ilist.Add(1); //exception here

Benim sorum bir durum, nedenini biliyorum, ama değildirneden Dizi uygular IList?

CEVAP
11 Mayıs 2011, ÇARŞAMBA


Bir dizi dizini hızlı erişim sağlar çünkü 6*/IList<T> *olduğunu, bu destek sadece toplama arabirimleri. Belki de asıl soru "Neden dizin oluşturucu ile sürekli koleksiyonları için hiçbir arayüzü var mı?" Ve bunun için bir cevabım yok.

Koleksiyon arayüzleri ya da salt okunur yoktur. Ve sürekli bir dizin oluşturucu ile boy arayüzü daha fazla özlüyorum.

IMO orada daha genel birkaç koleksiyon arayüzleri bir koleksiyon özelliklerine göre olmalıdır. Ve adları bir dizin gerçekten aptal IMO ile de, List farklı bir şey olmalıydı.

  • Sadece Numaralandırma IEnumerable<T>
  • Salt okunur ama hiçbir oluşturucu (.Kont ., İçerir...)
  • Yeniden boyutlandırılabilir ama hiçbir oluşturucu, yani gibi ayarlayın (Ekle, Kaldır,...)* *10 geçerli
  • Salt okunur dizin oluşturucu ile (dizin oluşturucu, adres bilgisi,...)
  • Dizin oluşturucu (bir pasör ile dizin oluşturucu) ile sabit boyutu
  • Dizin oluşturucu ile değişken boyutu (, Ekle...) mevcut IList<T>

Geçerli koleksiyon arayüzleri kötü bir tasarım bence. Ama özellikleri geçerli olan inan(ve bu, bu yöntemlerin sözleşmenin bir parçası) çünkü onlar ikamesi ilkesine aykırı değil.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunliu

    bunliu

    2 Mayıs 2007
  • kylelandry

    kylelandry

    9 AĞUSTOS 2007
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013