C'de temsilcilere ve olaylara giriş#

Temsilciler .NET'te geç bağlama mekanizması sağlar. Geç Bağlama, çağıranın algoritmanın bir bölümünü uygulayan en az bir yöntem sağladığı bir algoritma oluşturduğunuz anlamına gelir.

Örneğin, bir astronomi uygulamasındaki yıldız listesini sıralamayı göz önünde bulundurun. Bu yıldızları yerden uzaklıklarına, yıldızın büyüklüğüne veya algılanan parlaklıklarına göre sıralamayı seçebilirsiniz.

Tüm bu durumlarda Sort() yöntemi temelde aynı şeyi yapar: listedeki öğeleri bazı karşılaştırmalara göre düzenler. İki yıldızı karşılaştıran kod, sıralama sıralamalarının her biri için farklıdır.

Bu tür çözümler yarım asırdır yazılımlarda kullanılmaktadır. C# dil temsilcisi kavramı birinci sınıf dil desteği ve kavram etrafında tür güvenliği sağlar.

Bu serinin ilerleyen bölümlerinde göreceğiniz gibi, bunun gibi algoritmalar için yazdığınız C# kodu güvenli bir türdür. Derleyici, türlerin bağımsız değişkenler ve dönüş türleriyle eşleşmesini sağlar.

İşlev işaretçileri , çağrı kuralı üzerinde daha fazla denetime ihtiyacınız olan benzer senaryoları destekler. Temsilciyle ilişkilendirilmiş kod, temsilci türüne eklenen sanal bir yöntem kullanılarak çağrılır. İşlev işaretçilerini kullanarak farklı kurallar belirtebilirsiniz.

Temsilciler için Dil Tasarımı Hedefleri

Dil tasarımcıları, sonunda temsilci haline gelen özellik için birkaç hedef listeledi.

Ekip, geç bağlama algoritmaları için kullanılabilecek ortak bir dil yapısı istiyordu. Temsilciler geliştiricilerin tek bir kavram öğrenmesine ve birçok farklı yazılım sorununda aynı kavramı kullanmasına olanak tanır.

İkinci olarak, ekip hem tek hem de çok noktaya yayın yöntemi çağrılarını desteklemek istedi. (Çok noktaya yayın temsilcileri, birden çok yöntem çağrılarını birbirine zincirleyen temsilcilerdir. Bu serinin ilerleyen bölümlerinde örnekler göreceksiniz.)

Ekip, temsilcilerin geliştiricilerin tüm C# yapılarından beklediği tür güvenliğini desteklemesini istedi.

Son olarak, ekip bir olay deseninin temsilcilerin veya geç bağlama algoritmalarının yararlı olduğu belirli bir desen olduğunu fark etti. Ekip, temsilcilerin kodunun .NET olay düzeni için temel oluşturabileceğinden emin olmak istedi.

Tüm bu çalışmaların sonucu C# ve .NET'teki temsilci ve olay desteğiydi.

Bu serinin kalan makalelerinde dil özellikleri, kitaplık desteği ve temsilciler ve olaylarla çalışırken kullanılan yaygın deyimler ele alınacaktır. Şu konularda bilgi edineceksiniz:

  • Anahtar delegate sözcüğü ve oluşturduğu kod.
  • sınıfındaki System.Delegate özellikler ve bu özelliklerin nasıl kullanıldığı.
  • Tür açısından güvenli temsilciler oluşturma.
  • Temsilciler aracılığıyla çağrılabilecek yöntemler oluşturma.
  • Lambda ifadelerini kullanarak temsilciler ve olaylarla çalışma.
  • Temsilciler LINQ için yapı taşları arasında nasıl yer alır?
  • Temsilcilerin .NET olay deseninin temelini oluşturma şekli ve farklı olmaları.

Haydi başlayalım.

İleri