Aracılığıyla paylaş


Temsilciler (C# Programlama Kılavuzu)

Bir temsilci, belirli bir parametre listesi ve dönüş türü olan yöntemlere başvuruları gösteren 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, yöntem çağrılarını programatik olarak değiştirmeyi ve varolan sınıflara yeni kod eklemeyi olanaklı kılar.

[!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.Örneğin, iki nesneyi karşılaştıran bir yönteme yapılan bir başvuru, bir sıralama algoritmasına bir bağımsız değişken olarak geçirilebilir.Karşılaştırma kodu ayrı bir yordamda olduğundan, sıralama algoritması daha genel bir şekilde yazılabilir.

Temsilcilere Genel Bakış

Temsilciler aşağıdaki özelliklere sahiptir:

  • Temsilciler C++ işlev işaretçileri gibidir, fakat tür bakımından güvenlidir.

  • 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 (C# ve Visual Basic).

  • C# sürüm 2.0, kod bloklarının ayrı olarak tanımlanan bir yöntem yerine geçirilmesine olanak tanıyan Anonim Yöntemler kavramını kullanıma sundu.C# 3.0, satır içi kod blokları yazmak için daha kısa bir yol olarak lambda ifadelerini kullanmaya başladı.Hem anonim yöntemler hem de lambda ifadeleri (belirli bağlamlarda) temsilci türleri olarak derlenir.Birlikte, bu özellikler artık anonim işlevler olarak bilinir.Lambda ifadeleri hakkında daha fazla bilgi için bkz. Anonim İşlevler (C# Programlama Kılavuzu).

Bu Bölümde

C# Dil Belirtimi

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

Özel Kitap Bölümleri

Delegates, Events, and Lambda Expressions içindeki C# 3.0 Cookbook, Third Edition: More than 250 solutions for C# 3.0 programmers

Delegates and Events içindeki Learning C# 3.0: Master the fundamentals of C# 3.0

Ayrıca bkz.

Başvuru

Olaylar (C# Programlama Kılavuzu)

Delegate

Kavramlar

C# Programlama Kılavuzu