EventArgs可以为null吗?

沙茶

protected override void OnFormClosing(FormClosingEventArgs e)在一些代码中提供了代码,并且代码分析给出了CA1062,因为我不检查是否e为null。

约定是EventArgs永远不应该为空;这就是我们拥有的原因EventArgs.Empty当然,我可能很愚蠢并且可以通过null而不是EventArgs.Empty在引发某些事件时通过,但是这里将是一些自动生成的代码将引发FormClosing事件,因此我只是取消了警告。

是否有一些极端情况可能导致EventArgs由框架为null而不是由程序员引起的?

卡米洛·特雷文托(Camilo Terevinto)

简短的回答:是的,您可以这样做:

public void DoSomething()
{
    OnFormClosing(null);
}

但是,除非您实际执行此类操作,否则可以忽略该警告。

查看Form类的源代码,我们可以找到此方法该方法将恢复为:

    /// <devdoc>
    ///    <para>Raises the FormClosing event for this form when Application.Exit is called.
    ///          Returns e.Cancel returned by the event handler.</para>
    /// </devdoc>
    internal bool RaiseFormClosingOnAppExit() {
        FormClosingEventArgs e = new FormClosingEventArgs(CloseReason.ApplicationExitCall, false);
        OnFormClosing(e);
        return e.Cancel;
    }

所以不,e当WinForms引发事件时,将不会有任何方法可以将null设为null。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EventArgs可以为null吗?

来自分类Dev

Java可变参数可以为null吗?

来自分类Dev

Rcpp :: Function可以为NULL吗?

来自分类Dev

Rcpp :: Function可以为NULL吗?

来自分类Dev

PropertyInfo.DeclaringType真的可以为null吗?

来自分类Dev

'this'指针在c ++类中可以为null吗?

来自分类Dev

有效的HKEY可以为NULL吗?

来自分类Dev

'this'指针在C ++类中可以为null吗?

来自分类Dev

devicePixelRatio可以为零吗?

来自分类Dev

我可以为允许为null的十进制列插入null吗

来自分类Dev

如果is运算符返回true,则as运算符的结果可以为null吗?

来自分类Dev

c# 我可以将 EventArgs 转换为 MouseEventArgs 吗?

来自分类Dev

RGB值可以为负吗?

来自分类Dev

Kafka可以为您拆分记录吗?

来自分类Dev

可以为设计文档设置updateInterval吗?

来自分类Dev

SPI_GETMOUSEHOVERTIME可以为零吗?

来自分类Dev

BobJenkinsHash函数的结果可以为负吗?

来自分类Dev

SystemVerilog枚举可以为空吗?

来自分类Dev

可以为Apple Watch创建表盘吗?

来自分类Dev

DynamoDb范围键可以为空吗?

来自分类Dev

可以为jQuery前置动画吗?

来自分类Dev

@ManyToOne JPA关系可以为空吗?

来自分类Dev

可以为abspath设置cwd吗?

来自分类Dev

可以为特定的应用清除localStorage吗?

来自分类Dev

XSD选项可以为空吗?

来自分类Dev

我可以为此使用Pivot吗?

来自分类Dev

我可以为firewalld安装GUI吗?

来自分类Dev

屈服的ienumerable永远可以为空吗?

来自分类Dev

Elasticsearch可以为映射提出建议吗?