我刚刚对我的c# winforms项目进行了代码分析。我得到一个警告
CA1009 Declare event handlers correctly
Declare the second parameter of 'NameEditEx.TextChanged' as an EventArgs,
or an instance of a type that extends EventArgs, named 'e'.
所讨论的类位于包含以下内容的用户控件中;
public delegate void TextChanged();
[Browsable(true)]
public event TextChanged OnTextChanged;
有控件的表单在InitializeComponent
中有以下代码 this.nameEditEx1.OnTextChanged += new NameEditExLib.NameEditEx.TextChanged(this.nameEditEx1_OnTextChanged);
方法
private void nameEditEx1_OnTextChanged()
{
try
{
UpdateName();
}
catch (Exception ex)
{
HandleException.Show(ex);
}
}
当我运行它时,代码似乎工作正常。我应该修改代码以去掉警告吗?如果有,我该怎么做?
更新微软链接
委托应该是
public delegate void TextChanged(object sender, EventArgs e);
方法应该是
private void nameEditEx1_OnTextChanged(object sender, EventArgs e)
这样做可以确保与其他类型的事件的一致性,其中第一个参数是sender,第二个参数是EventArgs。
然后可以通过调用 来调用事件处理程序。OnTextChanged(this, EventArgs.Empty);