Bagikan melalui


peristiwa (referensi C#)

Kata kunci event digunakan untuk mendeklarasikan peristiwa di kelas penerbit.

Contoh

Contoh berikut menunjukkan cara mendeklarasikan dan memunculkan peristiwa yang menggunakan EventHandler sebagai jenis delegasi yang mendasar. Untuk contoh kode lengkap yang juga menunjukkan cara menggunakan jenis delegasi EventHandler<TEventArgs> generik dan cara berlangganan peristiwa dan membuat metode penanganan aktivitas, lihat Cara menerbitkan peristiwa yang sesuai dengan Panduan .NET.

public class SampleEventArgs
{
    public SampleEventArgs(string text) { Text = text; }
    public string Text { get; } // readonly
}

public class Publisher
{
    // Declare the delegate (if using non-generic pattern).
    public delegate void SampleEventHandler(object sender, SampleEventArgs e);

    // Declare the event.
    public event SampleEventHandler SampleEvent;

    // Wrap the event in a protected virtual method
    // to enable derived classes to raise the event.
    protected virtual void RaiseSampleEvent()
    {
        // Raise the event in a thread-safe manner using the ?. operator.
        SampleEvent?.Invoke(this, new SampleEventArgs("Hello"));
    }
}

Peristiwa adalah jenis delegasi multicast khusus yang hanya dapat dipanggil dari dalam kelas (atau kelas turunan) atau struktur tempat mereka dideklarasikan (kelas penerbit). Jika kelas atau struktur lain berlangganan peristiwa tersebut, metode penanganan aktivitas mereka akan dipanggil saat kelas penerbit memunculkan peristiwa. Untuk informasi lebih lanjut dan contoh kode, lihat Peristiwa dan Delegasi.

Peristiwa dapat ditandai sebagai publik, privat, dilindungi, internal, internal yang dilindungi, atau dilindungi privat. Pengubah akses ini menentukan bagaimana pengguna kelas dapat mengakses peristiwa. Untuk informasi selengkapnya, lihat Pengubah Akses.

Kata kunci dan peristiwa

Kata kunci berikut berlaku untuk peristiwa.

Kata kunci Deskripsi Untuk informasi lebih lanjut
statik Membuat peristiwa tersedia untuk penelepon kapan saja, bahkan jika tidak ada contoh kelas. Kelas Statis dan Anggota Kelas Statis
virtual Memungkinkan kelas turunan untuk mengambil alih perilaku peristiwa dengan menggunakan kata kunci ambil alih. Warisan
disegel Menentukan bahwa untuk kelas turunan tidak lagi virtual.
abstrak Pengompilasi tidak akan menghasilkan blok pengakses peristiwa add dan remove, oleh karena itu kelas turunan harus menyediakan implementasinya sendiri.

Peristiwa dapat dideklarasikan sebagai peristiwa statik dengan menggunakan kata kunci statik. Hal ini membuat acara tersedia untuk penelepon kapan saja, bahkan jika tidak ada instans kelas tersedia. Untuk informasi lebih lanjut, lihat Kelas Statik dan Anggota Kelas Statik.

Peristiwa dapat ditandai sebagai peristiwa virtual dengan menggunakan kata kunci virtual. Hal ini memungkinkan kelas turunan untuk mengambil alih perilaku peristiwa dengan menggunakan kata kunci ambil alih. Untuk informasi selengkapnya, lihat Warisan. Peristiwa yang mengambil alih peristiwa virtual juga dapat disegel, yang menetapkan bahwa untuk kelas turunan, peristiwa itu tidak lagi virtual. Terakhir, suatu peristiwa dapat dideklarasikan abstrak, yang berarti bahwa pengompilasi tidak akan menghasilkan blok pengakses peristiwa add dan remove. Oleh karena itu kelas turunan harus menyediakan implementasinya sendiri.

Spesifikasi bahasa C#

Untuk informasi selengkapnya, lihat Spesifikasi Bahasa C#. Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#.

Lihat juga