IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

C# Delegeler (Geliştiriciler için Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

C# programlamada, yeni yönlendirilebilir ve genişletilebilir kod yazabilmek için delegeyi anlamanın önemi büyüktür. Delegeler, dil içinde geri arama, olay işleme ve fonksiyonel programlama yaklaşımlarını uygulama kolaylığı sağlayan güçlü unsurlar olarak hizmet eder. Microsoft'un delege kılavuzu, C# uygulamalarında kullanılacak Delegate örneklerine yönelik kapsamlı bir bakış sunar.

Bu kapsamlı kılavuzda, C# delegelerinin karmaşıklıklarına derinlemesine bir keşif yapacağız, işlevselliklerini, kullanım senaryolarını ve programcıların daha modüler ve ölçeklenebilir kod yazmalarına nasıl olanak sağladığını inceleyeceğiz.

C# Temsilcileri Anlamak: Geri Çağrıların Omurgası

Temelinde, C#'ta bir delege, bir fonksiyon işaretçisi olarak da ifade edilen ve bir veya daha fazla metodu kapsayan tür güvenli bir nesnedir. Delegeler, fonksiyonlara referanslar oluşturma, bunları parametre olarak geçirme, veri yapılarında depolama ve dinamik olarak çağırma yolları sağlar. Bu, delegeleri geri arama mekanizmalarını gerçekleştirmek ve olay odaklı mimarileri uygulamak için vazgeçilmez bir temel yapar.

C# Temsilcilerinin Temel Özellikleri

  1. Tür Güvenliği: Delegeler tür güvenliğidir ve referans verdikleri metodun imzasının, delegenin imzasına uygun olmasını sağlar.
  2. Çoklu Yayın: Delegeler çoklu yayını destekler ve bu sayede birçok metodun tek bir delege örneği içinde birleştirilmesine izin verir. Çağrıldığında, çoklu yayın delegesi içindeki tüm metodlar sırayla çağrılır.
  3. Anonim Metodlar ve Lambda İfadeleri: C# delegeleri, anonim metodlar ve lambda ifadeleri ile sorunsuz bir şekilde entegre olur, metot tanımlarını satır içinde tanımlamak için özlü bir sözdizimi sağlar.

Temel Kullanımı ve Sözdizimi

Delegelerin kullanımı için temel adımlar, delege türü ve parametreleri ile bildirim, örnekleme ve geri arama metotlarını tanımlayarak çağrının yapılmasını içerir. İşte temel bir örnek:

// Delegate declaration
public delegate void MyDelegate(string message);

class Program
{
    static void Main(string[] args)
    {
        // Instantiation
        MyDelegate myDelegate = DisplayMessage;
        
        // Invocation
        myDelegate("Hello, Delegates!");
    }

    // Method to be referenced
    static void DisplayMessage(string message)
    {
        Console.WriteLine(message);
    }
}

Geri Arama Senaryoları: Esneklik İçin Delegelerden Yararlanma

Delegelerin ana kullanım senaryolarından biri geri aramalar uygulamaktır. Belirli bir olay meydana geldiğinde bir metodun dış bir bileşeni bilgilendirmesi gereken durumları düşünün. Delegeler, temiz ve modüler bir çözüm sunar:

using System;

class Program
{
    static void Main(string[] args)
    {
        EventPublisher publisher = new EventPublisher();
        EventSubscriber subscriber = new EventSubscriber(publisher);
        
        publisher.SimulateEvent("Test Event");
    }
}

public class EventPublisher
{
    // Declare a delegate type
    public delegate void EventHandler(string eventName);

    // Create an instance of the delegate
    public event EventHandler EventOccurred;

    // Simulate an event
    public void SimulateEvent(string eventName)
    {
        // Invoke the delegate to notify subscribers
        EventOccurred?.Invoke(eventName);
    }
}

public class EventSubscriber
{
    public EventSubscriber(EventPublisher eventPublisher)
    {
        // Subscribe to the event using the delegate
        eventPublisher.EventOccurred += HandleEvent;
    }

    // Method to be invoked when the event occurs
    private void HandleEvent(string eventName)
    {
        Console.WriteLine($"Event handled: {eventName}");
    }
}

Fonksiyonel Programlama ile Delegeler

Delegeler, C#'ta fonksiyonel programlama kavramlarını benimsemede önemli bir rol oynar. Yüksek dereceli fonksiyonlarla delegeler kullanarak, geliştiriciler fonksiyonları argümanlar olarak geçirebilir, fonksiyonları döndürebilir ve daha özlü ve ifade edici kodlar oluşturabilirler:

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

public class Calculator
{
    public int PerformOperation(MyDelegate operation, int operand1, int operand2)
    {
        // Execute the operation method reference through the passed delegate
        return operation(operand1, operand2);
    }
}

// Usage
var calculator = new Calculator();
int result = calculator.PerformOperation((x, y) => x + y, 5, 3); // Adds 5 and 3
Console.WriteLine(result); // Outputs: 8

IronPDF'ü Tanıma: Kısa Bir Genel Bakış

C# Delegeler (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - IronPDF web sayfası

IronPDF'in özellikleri hakkında daha fazla bilgi edinin ve bu özellik zengin kütüphanenin, C# uygulamalarında PDF oluşturma, düzenleme ve etkileşim olanağı sağladığını keşfedin. Sıfırdan PDF oluşturma, HTML'yi PDF'ye dönüştürme veya mevcut PDF'lerden içerik çıkarma gereksiniminiz olsun, IronPDF bu görevleri kolaylaştırmak için kapsamlı bir araç seti sunar. Çok yönlülüğü, çeşitli projeler üzerinde çalışan geliştiriciler için değerli bir varlık haline getirir.

IronPDF Kurulumu: Hızlı Başlangıç

C# projenizde IronPDF kütüphanesini kullanmaya başlamak için IronPDF NuGet paketini kolayca yükleyebilirsiniz. Paket Yöneticisi Konsolunuzda aşağıdaki komutu kullanın:

PM > Install-Package IronPdf

Alternatif olarak, NuGet Paket Yöneticisi'nde "IronPDF" arayabilir ve buradan yükleyebilirsiniz.

C# Delegeler (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - IronPDF kütüphanesini NuGet Paket Yöneticisi ile yükleme

C#'da Temsilciler: Hızlı Bir Özete

C#'ta, delegeler tür güvenli fonksiyon işaretçileri olarak hizmet eder ve metodların referans verilmesine ve parametre olarak geçirilmesine olanak tanır. Delegeler yukarıda belirtildiği gibi farklı senaryolarda önemli bir rol oynar. Şimdi, soru şu: C# delegeleri IronPDF ortamına nasıl uyum sağlar ve bunları birlikte etkili bir şekilde kullanabilir miyiz?

Delegelerin IronPDF ile Entegrasyonu

1. Belge Olayları İçin Geri Arama Yöntemleri Kullanma

IronPDF ile delegeleri kullanmanın bir yolu, belge olayları için geri arama yöntemleri aracılığıyla olabilir. IronPDF, delegelerle abone olabileceğiniz olaylar sunar, böylece belge oluşturma sürecinin belirli noktalarında özel mantıkları çalıştırabilirsiniz. Örneğin:

using IronPdf;

public delegate string AddPasswordEventHandler(PdfDocument e);

string AddPassword(PdfDocument document)
{
    string password = "";
    if (document.Password == "")
    {
        password = "Iron123";
    }
    return password;
}

PdfDocument document = new PdfDocument("StyledDocument.pdf");
AddPasswordEventHandler handler = AddPassword;
document.Password = handler.Invoke(document); // Subscribe to the event
document.SaveAs("PasswordProtected.pdf");

Bu C# kod parçasında, bir PdfDocument parametre olarak kabul eden ve bir dize döndüren AddPassword adlı bir yöntem tanımlanır. Bu yöntem içinde, password adlı bir dize değişkeni başlatılır ve sağlanan PdfDocument'un Password özelliği üzerinde bir koşullu kontrol gerçekleştirilir. Şifre boş bir dize ise, password değişkenine "Iron123" değerini atayın ve geri döndürün.

Sonraki adımda, "StyledDocument.pdf" dosya adıyla bir PdfDocument örneği oluşturulur. AddPassword yönteminin aynısına sahip bir imza ile AddPasswordEventHandler adlı bir delege ilan edilir. Bu delegasyonun handler adlı örneği AddPassword yöntemine atanır. document örneği ile Invoke yöntemini geçerek delege çağrılır ve döndürülen şifre document'un Password özelliğine atanır.

Son olarak, document üzerinde SaveAs yöntemi çağrılır ve "PasswordProtected.pdf" olarak kaydedilir. Kod, bir PdfDocument için AddPassword içinde belirli koşullara göre dinamik olarak bir şifre belirlemek ve ayarlamak için etkili bir şekilde bir delege kullanır.

2. Dinamik İçerik için Delegeleri Kullanma

Delegeler aynı zamanda PDF belgesine dinamik içerik enjekte etmek için de kullanılabilir. IronPDF, HTML içeriğinin HTML'den PDF oluşturma destekler, ve geliştiriciler, belirli koşullar veya verilere dayalı olarak dinamik olarak HTML üretebilirler:

// Assuming GetDynamicContent is a delegate that generates dynamic HTML content
Func<string> getDynamicContent = () =>
{
    // Custom logic to generate dynamic content
    return "<p>This is dynamic content based on some condition.</p>";
};

// Incorporate dynamic HTML into the PDF
var pdfRenderer = new ChromePdfRenderer();
var pdfDocument = pdfRenderer.RenderHtmlAsPdf($"<html><body>{getDynamicContent()}</body></html>");
pdfDocument.SaveAs("DynamicContentDocument.pdf");

Bu örnekte, getDynamicContent delegesi, dinamik olarak HTML içeriği üretir ve bu içerik daha sonra PDF belgesine gömülür.

C# Delegeler (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - Önceki koddan çıktı PDF

IronPDF'i verimli ve etkili kullanmak için, lütfen IronPDF dökümantasyonunu ziyaret edin.

Sonuç

Sonuç olarak, C# delegeleri, kod esnekliği ve modülerliğinin belkemiğidir. Geri çağrılar uygulamaya, olayları ele almaya ve functional programlama yaklaşımlarını benimsemeye olanak tanırlar, örneğin metod çağrılarını programatik olarak değiştirme yeteneği. C# araç setinde çok yönlü bir araç olarak, delegeler geliştiricilere daha bakımı kolay, ölçeklenebilir ve ifade edici kodlar oluşturmada yetki sağlar. İster olay odaklı uygulamalar inşa ediyor, ister geri arama mekanizmalarını uyguluyor, ister işlevsel programlamayı keşfediyor olun, C# delegeleri, programlama yolculuğunuzda güçlü bir müttefiktir.

C# delegeleri ve IronPDF, uygulamalarınızdaki belge oluşturma olanaklarını geliştiren işbirlikçi bir çift oluşturabilir. İster belge olaylarını özelleştiriyor, ister dinamik içerik enjekte ediyor olun, delegeler IronPDF'in işlevselliğini genişletmek için esnek bir mekanizma sağlar. Olasılıkları keşfederken, projenizin belirli gereksinimlerini dikkate alın ve delegelerin IronPDF ile daha kişiselleştirilmiş ve dinamik bir PDF oluşturma sürecine nasıl katkıda bulunabileceğini düşünün.

IronPDF, tam işlevselliğini denemek için bir ücretsiz deneme sunar. Ticari kullanım için lisanslanabilir ve $999 ile başlayabilir.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez