Kir*_*eed 2 c# code-analysis event-handling winforms
我刚刚在我的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'.
Run Code Online (Sandbox Code Playgroud)
有问题的类位于包含以下内容的用户控件中;
public delegate void TextChanged();
[Browsable(true)]
public event TextChanged OnTextChanged;
Run Code Online (Sandbox Code Playgroud)
对其具有控件的表单在InitializeComponent中具有以下代码
this.nameEditEx1.OnTextChanged += new NameEditExLib.NameEditEx.TextChanged(this.nameEditEx1_OnTextChanged);
Run Code Online (Sandbox Code Playgroud)
方法是
private void nameEditEx1_OnTextChanged()
{
try
{
UpdateName();
}
catch (Exception ex)
{
HandleException.Show(ex);
}
}
Run Code Online (Sandbox Code Playgroud)
运行时,代码似乎工作正常.我应该改变代码以摆脱警告吗?如果是这样,我该怎么做?
更新 微软链接
代表应该是
public delegate void TextChanged(object sender, EventArgs e);
Run Code Online (Sandbox Code Playgroud)
方法应该是
private void nameEditEx1_OnTextChanged(object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)
这样做可确保与其他类型的事件保持一致,其中第一个参数是发送者,第二个参数是EventArgs.
然后,您可以通过调用来调用事件处理程序
OnTextChanged(this, EventArgs.Empty);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4690 次 |
| 最近记录: |