Temsilciler (C# Programlama Kılavuzu)

Temsilci , belirli bir parametre listesi ve dönüş türü olan yöntemlere yapılan başvuruları temsil eden bir türdür. Bir temsilci oluşturduğunuzda, örneğini uyumlu bir imza ve dönüş türü içeren herhangi bir yöntemle ilişkilendirebilirsiniz. Yöntemi, temsilci örneği aracılığıyla çağırabilirsiniz.

Temsilciler, yöntemleri bağımsız değişkenler olarak diğer yöntemlere geçirmek için kullanılır. Olay işleyicileri, temsilciler aracılığıyla çağrılan yöntemlerden başka bir şey değildir. Özel bir yöntem oluşturabilirsiniz ve bir pencere denetimi gibi bir sınıf, belirli bir olay olduğunda yönteminizi çağırabilir. Aşağıdaki örnek, bir temsilci bildirimini gösterir:

public delegate int PerformCalculation(int x, int y);

Temsilci türüyle eşleşen herhangi bir erişilebilir sınıf veya yapıdan alınan herhangi bir yöntem temsilciye atanabilir. Yöntem, statik veya örnek bir yöntem olabilir. Bu esneklik, Yöntem çağrılarını program aracılığıyla değiştirebileceğiniz veya varolan sınıflara yeni kod takbileceğiniz anlamına gelir.

Not

Yöntem aşırı yükü bağlamında, yöntemin imzası dönüş değeri içermez. Ancak, temsilciler bağlamında, imza dönüş değerini içermez. Başka bir deyişle, bir yöntemin dönüş türü temsilciyle aynı olmalıdır.

Bir yönteme bir parametre olarak başvurma yeteneği, temsilciyi geri çağırma yöntemleri için ideal hale getirir. Uygulamanızdaki iki nesneyi karşılaştıran bir yöntem yazabilirsiniz. Bu yöntem, bir sıralama algoritması için bir temsilci içinde kullanılabilir. Karşılaştırma kodu kitaplıktan ayrı olduğundan, sıralama yöntemi daha genel olabilir.

İşlev işaretçileri , çağırma kuralı üzerinde daha fazla denetime ihtiyaç duyduğunuz benzer senaryolar Için C# 9 ' a eklenmiştir. Bir temsilciyle ilişkili kod, bir temsilci türüne eklenen bir sanal yöntem kullanılarak çağrılır. İşlev işaretçilerini kullanarak farklı kurallar belirtebilirsiniz.

Temsilcilere Genel Bakış

Temsilciler aşağıdaki özelliklere sahiptir:

  • Temsilciler C++ işlev işaretçilerine benzerdir, ancak temsilciler tam nesne yönelimli olarak ve üye işlevlerine C++ işaretçilerine benzemekle birlikte, temsilciler hem bir nesne örneğini hem de bir yöntemi kapsüller.
  • Temsilciler, yöntemlerin parametre olarak geçirilmesine olanak tanır.
  • Temsilciler, geri çağırma yöntemlerini tanımlamak için kullanılabilir.
  • Temsilciler birlikte zincirleme yapılabilir; Örneğin, tek bir olay üzerine birden çok yöntem çağrılabilir.
  • Yöntemlerin temsilci türüyle tam olarak eşleşmesi gerekmez. Daha fazla bilgi için bkz. Temsilcilerde varyans kullanma.
  • Lambda ifadeleri, satır içi kod blokları yazmanın daha kısa bir yoludur. Lambda ifadeleri (bazı bağlamlarda) temsilci türlerine derlenir. Lambda ifadeleri hakkında daha fazla bilgi için bkz. lambda ifadeleri.

Bu Bölümde

C# Dil Belirtimi

Daha fazla bilgi için bkz. C# dil belirtiminde Temsilciler . Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.

Ayrıca bkz.