SORU
2 EYLÜL 2010, PERŞEMBE


İşlev nedir, nasıl ve ne zaman kullanılır?

Func<> nedir ve ne için kullanılır?

CEVAP
2 EYLÜL 2010, PERŞEMBE


Bir yer tutucu olarak düşün. Belli bir yol izler ama belirli bir işlevi bağlı olması gerekmez bu kod varsa çok yararlı olabilir.

Örneğin, Enumerable.Select uzatma yöntemi düşünün.

  • desenbir dizideki her öğe için, bu maddenin (örneğin, bir özellik) bir değer seçin ve bu değerlerden oluşan. yeni bir dizi oluşturmak
  • yer tutucu: aslında sıra değerleri olur biraz seçici fonksiyonu yukarıda tarif.

Bu yöntem, herhangi bir somut işlevi yerine Func<T, TResult> alır. Bu, kullanılan izin verirherhangi biryukarıdaki desen de geçerli bağlam.

Yani, örneğin, List<Person> bir arkadaşım var ve sadece listedeki her kişinin adını istiyorum. Bunu yapabilirim:

var names = people.Select(p => p.Name);

Ya da söylemek istiyorumyaşher kişi:

var ages = people.Select(p => p.Age);

Hemen, mümkün kaldıraç nasıl olduğumu görebilirsinizaynıkod bir temsildesen(Select) iki ilefarklıfonksiyonları (p => p.Name p => p.Age).

Alternatif değer farklı bir tür için bir dizi tarama istediğini Select farklı bir sürümünü her zaman yazmaktır. Yani yukarıdaki gibi aynı etkiyi elde etmek için gerekir:

// Presumably, the code inside these two methods would look almost identical;
// the only difference would be the part that actually selects a value
// based on a Person.
var names = GetPersonNames(people);
var ages = GetPersonAges(people);

Bir temsilci olarak yer tutucu davranan, ben bu gibi durumlarda aynı kalıbı tekrar tekrar yazmak zorunda kendimi özgür.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • El SalvaLobo

    El SalvaLobo

    10 Temmuz 2006
  • MrChiCity3

    MrChiCity3

    14 NİSAN 2008
  • newport83

    newport83

    19 HAZİRAN 2006