SORU
19 EYLÜL 2008, Cuma


Neden orada IEnumerable hiçbir dosyalarda grup uzatma yöntemi nedir?

Zip kayıp işlevi hakkında sorduğum bir soruya ilham:

Neden Enumerable Sınıfı ForEach uzantısı bir yöntem var mı? Ya da herhangi bir yerde? ForEach bir yöntem sadece sınıf List<>. Eksik olmasının bir sebebi (performans) var mı?

CEVAP
19 EYLÜL 2008, Cuma


Zaten işin çoğu zaman yaptığı dosyalarda grup için bir açıklama dili dahil.

Aşağıdaki görmekten nefret ediyorum:

list.ForEach( item =>
{
    item.DoSomething();
} );

Yerine:

foreach(Item item in list)
{
     item.DoSomething();
}

İkincisi daha net ve daha kolay okunurçoğu durumdaama belki biraz daha uzun yazın.

Ancak, bu konudaki duruşumu değiştirdim itiraf etmeliyim ki; bir ForEach() uzatma yöntemi aslında bazı durumlarda yararlı olacaktır.

İşte bu açıklama ve Yöntem arasındaki temel farklar:

  • Bir tür denetleme: dosyalarda grup zamanı, dosyalarda grup yapılır() zaman (Büyük bir Artı!) derleme.
  • Aramak için sözdizimi bir temsilci aslında çok basit: nesneleri.ForEach(Şey);
  • Böyle bir özelliğin kötülüğünü/yararlılığı tartışmaya açık olsa da. () ForEach zincirleme olabilir:

Bu nedenle bütün büyük puan burada bir çok insan tarafından yapılmış ve insanların işlevi eksik neden görebilirsiniz. Microsoft, bir sonraki çerçeve yineleme dosyalarda grup için standart bir yöntem eklemek benim için sorun olmazdı.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • fast2hell

    fast2hell

    16 AĞUSTOS 2006
  • RawBrahs

    RawBrahs

    28 Aralık 2010
  • Tinkernut

    Tinkernut

    28 Aralık 2006