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

  • GavinMichaelBooth

    GavinMichael

    26 AĞUSTOS 2006
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011
  • theatre2film

    theatre2film

    12 NİSAN 2006