为什么以下界面中的事件声明在代码分析器中抱怨CA1009?在实现中,它确实似乎遵循事件声明的标准约定。
using System;
namespace Client.Wpf.Utilities.MessageSubscription
{
public interface ITrigger<TMessageType>
{
event EventHandler<TMessageType> Fire;
}
}
CA1009正确声明事件处理程序
声明&#39; EventHandler&#39;的第二个参数作为EventArgs,或者是扩展EventArgs的类型的实例,名为&#39; e&#39;。
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);
}
}
}
}
答案 0 :(得分:0)
错误非常明显:
声明&#39; EventHandler&#39;的第二个参数作为EventArgs,或者是扩展EventArgs的类型的实例,名为&#39; e&#39;。
在上面的示例中,TMessageType没有从EventArgs继承,因而也没有继承警告。