IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

C# Eventları (Geliştiriciler İçin Nasıl Çalışır)

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

C#'taki Olaylar olay odaklı programlamanın temel bir parçasıdır. Nesnelerin iletişim kurmasına ve bir ilginç olay meydana geldiğinde başkalarını bilgilendirmesine izin verir. Bu kılavuzda, olayları ve onları ilan etmek ve kullanmak hakkında keşif yapacağız. Temiz bir anlayışı garanti etmek için adım adım ayrıştıralım. IronPDF'yı ve C# uygulamalarında PDF işlemlerini de keşfedeceğiz.

C#'ta Etkinlikler Nelerdir?

C#'taki olaylar, nesneler arasında iletişimi sağlar. Bir olay tetiklendiğinde, diğer nesneler buna yanıt verebilir. Olaylar, işlevlere tür güvenli işaretçiler olarak hareket eden delegelere dayanır. Bir olay delege türü, kamuya açık olayları ele alabilecek yöntemlerin imzasını tanımlar ve olay verisi işlemenin tutarlılığını sağlar.

Olayların Temel Bileşenleri

Olayları tam olarak anlamak için, ana bileşenlerine bir göz atalım:

1. Yayımcı Sınıf

Yayımcı sınıf olayın kaynağıdır. Özel bir eylem veya durum gerçekleştiğinde olayı ilan etmek ve kaldırtmakla sorumludur. Bu süreç tipik olarak olayın ne zaman meydana geldiğini belirlemek için bir olay işleyici yöntemini içerir. Yayımcı ayrıca, olayın ele alınabileceği yöntemlerin imzasını tanımlamak için bir olay delege kullanır. Örneğin, grafik kullanıcı arayüzünde (GUI), bir düğme kontrolü bir 'Click' (Tıklama) olayını kaldırdığında yayımcı gibi davranır.

2. Abone Sınıfı

Abone sınıfı olayları dinler ve onlara tepki verir. Bir abone, bir olay işleme yöntemini olaya ekleyerek bir olaya ilgisini kaydeder. Yayımlayıcı olayı tetiklediğinde, abonelerin olay işleyici yöntemi çalışır. Tek bir olay, olay meydana geldiğinde her biri farklı tepki veren birden fazla aboneye sahip olabilir.

3. Delegeler

Delegeler, C#'taki olayların temelini oluşturur. Onlar, yöntemlere tür güvenli işaretçiler olup, tüm olay işleyicilerinin takip etmesi gereken sözleşmeyi tanımlarlar. Delege, belirli bir imzaya sahip sadece metodların olayı ele alabilmesini sağlayarak tutarlı ve hatasız bir olay işleme mekanizması sunar.

4. Olay İşleyicileri

Olay işleyicileri, bir olay tetiklendiğinde çalışan abone sınıfındaki yöntemlerdir. UI'yi güncellemek, verileri kaydetmek veya hesaplamalar yapmak gibi etkinliği ele alacak mantığı içerirler. Bir olay işleyicisinin imzası, olayla ilişkilendirilen delege türüyle eşleşmelidir. Ayrıca, diğer sınıflar da paylaşılan olaylara tepki vermek için olay işleyicilerini kullanabilir. Etkinlikleri modüler ve yeniden kullanılabilir bir şekilde uygulamayı kolaylaştırır.

5. Etkinlik Verileri

Pek çok durumda, olaylar abone olanlara ek bilgi iletmelidir. Bu, temel EventArgs sınıfından türetilen olay veri sınıfları kullanılarak gerçekleştirilir. Olay verileri, mesaj, durum veya diğer ilgili bilgiler gibi olay hakkında belirli ayrıntılar içerir.

How to Declare and Use Events in C#

Adım 1: Bir Delege Bildirin

Temsilciler, olay işleyicileri için yöntem imzasını tanımlar. Bu örnekte, iki parametre ile olayı temsil etmek için bir delege oluşturuyoruz: object sender ve EventArgs e.

public delegate void MyEventHandler(object sender, EventArgs e);

Adım 2: Bir Olay Bildirin

Olaylar event anahtar kelimesi kullanılarak bildirilir ve delege türüne dayanır. İşte bir örnek:

public class Publisher
{
    public event MyEventHandler Notify; // Declare the event.
}

Adım 3: Olayı Başlat

Etkinlik, delegasyon çağrılarak ve gerekli parametreler geçirilerek tetiklenir.

public void TriggerEvent()
{
    if (Notify != null) // Check if there are subscribers.
    {
        Notify(this, EventArgs.Empty); // Raise the event.
    }
}

Adım 4: Etkinliğe Abone Olun

Aboneler, olay işleyicilerini += operatörü kullanarak kaydeder:

Publisher publisher = new Publisher();
Subscriber subscriber = new Subscriber();
publisher.Notify += subscriber.OnNotify; // Subscribe to the event.

Adım 5: Olayı Yönetin

Bir olay işleyici, abone sınıfında temsilci imzasına uyan bir yöntemdir:

public void OnNotify(object sender, EventArgs e)
{
    Console.WriteLine("Event received!");
}

IronPDF: C# PDF Kütüphanesi

IronPDF, PDF'lerle çalışmak için .NET ortamında kullanılan çok yönlü bir kütüphanedir ve C# uygulamalarıyla sorunsuz bir şekilde bütünleşir. C#'taki etkinlikler ile birleştirildiğinde, PDF oluşturma veya düzenleme sırasında ilerleme güncellemeleri, hata yönetimi ya da bildirimler gibi gerçek zamanlı senaryoları dinamik bir şekilde ele almanın bir yolunu sağlayabilir. Bu ilişkiyi ilgi çekici bir şekilde keşfedelim. C#'ta, olaylar bir şeyin olduğunu sinyal vermenin bir yoludur. Programınızın bir bölümünün, dosya işlenmesi, bir görevin tamamlanması veya bir hata ile karşılaşılması gibi belirli olaylar hakkında diğer bölümleri bilgilendirmesine olanak tanır.

IronPDF Nasıl Uyum Sağlar?

IronPDF, PDF'leri oluşturmanıza, değiştirmenize ve güvenli hale getirmenize olanak sağlar ve olaylarla entegre edilmesi, uygulamanızı daha etkileşimli hale getirebilir. Örneğin:

İlerleme Takibi: Büyük bir PDF raporu oluşturulurken tamamlanma yüzdesi hakkında abonelere bildirimde bulunun. Hata Yönetimi: PDF renderleme veya kaydetme sırasında bir sorun oluşursa bir olay tetikleyin. Özel İşlemler: Belirli PDF işlemlerinden sonra günlük kaydı veya kullanıcı arayüzü güncellemeleri gibi özel mantıkları yürütün.

Örnek: Etkinlik Bildirimleri ile PDF Oluşturma

İşte, etkinliklerle IronPDF kullanmayı göstermek için basit bir örnek:

using IronPdf;
using System;

// Program class
class Program
{
    // Define a custom event for progress updates
    public static event Action<int> ProgressUpdated;

    public static void Main()
    {
        License.LicenseKey = "License-Key";
        // Subscribe to the ProgressUpdated event
        ProgressUpdated += DisplayProgress;
        
        Console.WriteLine("Generating PDF...");
        GeneratePdf(); // Generate the PDF
    }

    // Method to generate PDF and trigger progress updates
    static void GeneratePdf()
    {
        try
        {
            var Renderer = new ChromePdfRenderer();
            for (int i = 0; i <= 100; i += 20)
            {
                // Simulate progress
                System.Threading.Thread.Sleep(500);
                ProgressUpdated?.Invoke(i); // Trigger event with progress value
            }
            // Generate a PDF
            var PdfDocument = Renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF with Events!</h1>");
            PdfDocument.SaveAs("IronPDF/example.pdf");
            ProgressUpdated?.Invoke(100); // Final update
            Console.WriteLine("PDF generated successfully!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }

    // Event handler to display progress
    static void DisplayProgress(int progress)
    {
        Console.WriteLine($"Progress: {progress}%");
    }
}

C# Olaylar (Geliştiriciler için Nasıl Çalışır): Şekil 1 - Çıktı

Sonuç

C#'taki olaylar, IronPDF ile birleştirildiğinde dinamik PDF oluşturma ve yönetimi için güçlü bir sistem oluşturur. Olaylar, PDF işlemlerini eşzamansız olarak yönetmek için temiz ve etkili bir yol sunarken, IronPDF, .NET platformlarında PDF oluşturma, düzenleme ve manipülasyonu için güçlü işlevsellik sunar. IronPDF, sınırlamalar olmadan tüm özellikleri test etmek için ücretsiz deneme sunar. Ticari lisanslar $999 seviyesinde başlar ve tam PDF üretim ve işleme yeteneklerine erişim sağlar.

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