SORU
5 Mayıs 2010, ÇARŞAMBA


() ToList-- Yeni bir Liste Oluşturmak Mı?

Hadi bir sınıf var diyelim

public class MyObject
{
   public int SimpleInt{get;set;}
}

** 3 ve ToList() ben ve benim değiştirmek orijinal listeye geri bulaşan bir değiştirin. Diğer bir deyişle, aşağıdaki yöntem çıktısı ne olur?

public void RunChangeList()
{
  var objs = new List<MyObject>(){new MyObject(){SimpleInt=0}};
  var whatInt = ChangeToList(objs );
}
public int ChangeToList(List<MyObject> objects)
{
  var objectList = objects.ToList();
  objectList[0].SimpleInt=5;
  return objects[0].SimpleInt;

}

Neden?

P/S: Eğer açık bulmak gibi görünüyor. üzgünüm Ama benimle derleyici artık yok...

CEVAP
5 Mayıs 2010, ÇARŞAMBA


, ToList Evet yeni bir liste oluşturur, ama bu durumda MyObject bir başvuru türüdür çünkü o zaman yeni liste orijinal liste aynı nesnelere başvurular içerir.

Nesneyi yeni listesinde başvurulan SimpleInt güncelleme özelliği de özgün listesinde eşdeğer nesne etkileyecektir.

(MyObject ilan edildi gibi bir struct yerine class sonra yeni bir liste olur kopyalarını içeren unsurları içinde orijinal liste ve güncelleme bir özellik unsuru yeni listedeğilorijinal listesinde eşdeğer unsur etkiler.)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Boiler Room

    Boiler Room

    10 Mayıs 2012
  • Djbasilio AuToBaSs

    Djbasilio Au

    20 Aralık 2008
  • hitcreatormusic2

    hitcreatormu

    21 Mayıs 2010