0
爲什麼在代碼分析器中使用CA1009在以下接口中發生事件聲明?在實施中,它確實似乎遵循事件聲明的標準慣例。在接口中聲明事件時的代碼分析警告
using System;
namespace Client.Wpf.Utilities.MessageSubscription
{
public interface ITrigger<TMessageType>
{
event EventHandler<TMessageType> Fire;
}
}
CA1009聲明的事件處理程序正確
聲明「事件處理程序」的第二個參數作爲一個EventArgs,或延伸的EventArgs一個類型,命名爲「E」的一個實例。
ITrigger.cs 7
和實現:
using System;
//using GalaSoft.MvvmLight.Messaging;
namespace Client.Wpf.Utilities.MessageSubscription
{
public class MvvmMessageTrigger<TMessageType> : ITrigger<TMessageType>
{
public MvvmMessageTrigger()
{
//Messenger.Default.Register<TMessageType>(this, InvokeSubscribers);
}
public event EventHandler<TMessageType> Fire;
private void InvokeSubscribers(TMessageType messageType)
{
if (null != Fire)
{
Fire(this, messageType);
}
}
}
}
什麼是TMessageType的聲明? – user957902
在這兩個地方,它只是一個普通的老班,沒什麼特別的。 public class Whatever {public string SomeProperty {get;組; }} –
因此它不是從EventArgs派生的,就像所有的.NET事件數據參數一樣?這是什麼信息抱怨。如果你願意,你可以忽略它,它只是混淆了任何程序員將爲事件編寫事件處理程序。 –