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

  • Derek Banas

    Derek Banas

    12 AĞUSTOS 2008
  • Attempts at least

    Attempts at

    1 Ocak 2007
  • Soulkiller13 ツ

    Soulkiller13

    30 Mayıs 2013