Aracılığıyla paylaş


CA1009: Olay işleyicilerini doğru bildirin

TypeName

DeclareEventHandlersCorrectly

CheckId

CA1009

Kategori

Microsoft.Design

Değişiklik kesiliyor

Bölme

Neden

Bir ortak veya korumalı olayı işleyen bir temsilci türü veya parametre adlarına dönmek doğru imzaya sahip değil.

Kural Tanımı

Olay işleyicisi yöntemi iki parametre alır.İlk türüdür Object ve 'gönderen' olarak adlandırılır.Bu olay nesnesidir.İkinci parametre türü: EventArgs ve 'e' olarak adlandırılır.Bu olay ile ilişkilendirilmiş olan verilerdir.Örneğin, bir dosyayı her açtığınızda olay oluşturulur, Olay verileri genellikle dosya adını içerir.

Olay işleyici yöntemlerine bir değer vermemelidir.C# programlama diliyle, bu dönüş türü gösterilir void.Bir olay işleyicisi, birden çok nesne birden çok yöntemleri çağırabilirsiniz.Yöntemleri bir değer döndürmek için izin verildi, her olay için birden fazla dönüş değerleri ortaya çıkabilecek ve yalnızca başlatıldığı son yöntem değeri kullanılabilir.

İhlalleri düzeltmek nasıl

Bu kuralı ihlal düzeltmek için imza, dönüş türü veya temsilci parametre adını düzeltin.Ayrıntılı bilgi için aşağıdaki örneğe bakın.

Uyarıları ne zaman

Uyarı Bu kuraldan bastırmak değil.

Örnek

Aşağıdaki örnek olaylarını işlemek için uygun olan bir temsilci gösterir.Bu olay işleyicisi tarafından çağrılan yöntemlerin tasarım yönergeleri belirtilen imza ile uyumlu.AlarmEventHandlertemsilci türünün adıdır.AlarmEventArgsOlay verileri için temel sınıfından türeyen EventArgs, ve holds alarm olay verisi.

Imports System

Namespace DesignLibrary

   Public Delegate Sub AlarmEventHandler(sender As Object, e As AlarmEventArgs)

   Public Class AlarmEventArgs
      Inherits EventArgs
   End Class 

End Namespace
using System;

namespace DesignLibrary
{
   public class AlarmEventArgs : EventArgs {}
   public delegate void AlarmEventHandler(object sender, AlarmEventArgs e);
}
using namespace System;

namespace DesignLibrary
{
   public ref class AlarmEventArgs : public EventArgs {};
   public delegate void AlarmEventHandler(
      Object^ sender, AlarmEventArgs^ e);
}

İlgili kuralları

CA2109: Görünen olay işleyicileri gözden geçirin

Ayrıca bkz.

Başvuru

EventArgs

Object

Diğer Kaynaklar

Olaylar ve temsilciler