SORU
1 HAZİRAN 2011, ÇARŞAMBA


Neden böyle bir yapı olarak uygulanır?

Sistem İçinde.Veri.Seri, EntitySet<T> böyle ItemList<T> yapılar birkaç kullanır:

 internal struct ItemList<T> where T : class
  {
    private T[] items;
    private int count;
    ...(methods)...
  }

(Bu keşfetmek için daha götürdü - EntitySet<T> varlıklar alanını atarak ne kadar önemli olduğunu anlayamadı başvuru istisnalar boş!)

Benim sorum bir sınıf üzerinde bir yapı olarak bu uygulama ne demektir?

CEVAP
1 HAZİRAN 2011, ÇARŞAMBA


ItemList<T> saklamak istediğiniz varsayalım, bir dizi sağlar.

Değer türleri bir dizi (struct) tahsis dizi içindeki verileri saklar. Öte yandan ItemList<T> başvuru türü (class) ItemList<T> nesnelere başvurular sadece dizi içinde saklanır. Aslında ItemList<T> nesneleri yığında ayrılmış olurdu. Yönlendirme fazladan bir düzeyi sadece bir dizi daha verimli bir değer türü kullanmaktır uzunluğu ile kombine olarak ItemList<T> örneği erişmek için gerekli.

Struct vs class

EntitySet<T> kodu inceledikten sonra hiçbir diziye dahil olduğunu görüyorum. Ancak, EntitySet<T> hala ItemList<T> iki örneği içerir. ItemList<T> struct bu örnekleri için depolama EntitySet<T> nesnenin içinde ayrılır. class EntitySet<T> referanslar EntitySet<T> işaret içeriyordu yerine kullanılan nesneler ayrı olarak ayrılmış.

Performans farkı arasında kullanan biri veya diğeri olmayabilir fark çoğu durumda ama belki de geliştirici karar istediği için tedavi dizisi ile sıkı eşleşmiş sayısı olarak bir tek değer çünkü sanki en iyi şey.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • HowcastFoodDrink

    HowcastFoodD

    21 EYLÜL 2010
  • Shon Gonzales

    Shon Gonzale

    5 EKİM 2014