İşlev nedir, nasıl ve ne zaman kullanılır?
Func<>
nedir ve ne için kullanılır?
CEVAP
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.
Geçişlerini için Dinlenmek nedir ve na...
Polimorfizmi nedir, ne işe yarar ve na...
İçin AppDelegate nedir ve nasıl kullan...
`After_create` ve ne zaman kullanılır ...
JNDI nedir ? Temel kullanım.. nedir? N...