CA1009: Olay işleyicilerini doğru bildirin
Ürün | Değer |
---|---|
RuleId | CA1009 |
Kategori | Microsoft.Design |
Hataya neden olan değişiklik | Yeni |
Neden
Genel veya korumalı bir olayı işleyen bir temsilci doğru imzaya, dönüş türüne veya parametre adlarına sahip değil.
Dekont
Bu kural kullanım dışı bırakıldı. Daha fazla bilgi için bkz . Kullanım dışı kurallar.
Kural açıklaması
Olay işleyicisi yöntemleri iki parametre alır. İlki türündedir System.Object ve 'sender' olarak adlandırılır. Bu olayda oluşan nesnedir. İkinci parametre türündedir System.EventArgs ve 'e' olarak adlandırılır. Bu olay ile ilişkilendirilmiş olan verilerdir. Örneğin, bir dosya her açıldığında olay tetikleniyorsa, olay verileri genellikle dosyanın adını içerir.
Olay işleyicisi yöntemleri bir değer döndürmemelidir. C# programlama dilinde bu, dönüş türüyle void
gösterilir. Olay işleyicisi birden çok nesnede birden çok yöntem çağırabilir. Yöntemlerin bir değer döndürmesine izin verildiyse, her olay için birden çok dönüş değeri oluşur ve yalnızca çağrılan son yöntemin değeri kullanılabilir.
İhlalleri düzeltme
Bu kuralın ihlalini düzeltmek için temsilcinin imzasını, dönüş türünü veya parametre adlarını düzeltin. Ayrıntılar için aşağıdaki örneklere bakın.
Uyarıların ne zaman bastırılması gerekiyor?
Bu kuraldan uyarıyı bastırmayın.
Örnek
Aşağıdaki örnekte olayları işlemeye uygun bir temsilci gösterilmektedir. Bu olay işleyicisi tarafından çağrılabilen yöntemler, Tasarım Yönergeleri'nde belirtilen imzayla uyumlu olur. AlarmEventHandler
, temsilcinin tür adıdır. AlarmEventArgs
, olay verileri EventArgsiçin temel sınıftan türetilir ve alarm olay verilerini tutar.
using System;
namespace DesignLibrary
{
public class AlarmEventArgs : 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin