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

  • edwin maldonado

    edwin maldon

    28 Mart 2009
  • TheScorpioTechno

    TheScorpioTe

    15 Aralık 2010
  • Thom Hall

    Thom Hall

    24 Kasım 2006