小编r_a*_*kog的帖子

使用EventArgs将信息传递回调用类

为了将信息传递回调用事件的类,修改事件处理程序中的EventArgs是不受欢迎的?

例如,如果我有一个低级别的通信类需要验证SSL的证书,但它无法知道有效的证书是什么样的,因为这是该类的不同用户的知识.

class ValidationEventArgs : System.EventArgs
{
    public X509Certificate Certificate { get; set; }
    public bool Valid { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后在使用对象中,它们连接到事件,并以某种方式检查它以更改Valid标志以指示证书是否可接受.

comms.ValidationEvent += CertValidationHandler;

void CertValidationHandler(ValidationEventArgs args)
{
    if (args.Certificate.Issuer.Contains(COMPANY_NAME)
        args.Valid = true;
}
Run Code Online (Sandbox Code Playgroud)

我发现像这样使用的EventArgs的引用,但我也看到人们说它不推荐.

编辑:也许我应该澄清这不是继承EventArgs,而是将它们用作双向沟通渠道.正如其他人所评论的那样,这是可以接受的,谷歌采取相反的任何噪音可能只是人们误解/误用了这个概念,现在却有同样的个人运动反对goto.

c#

25
推荐指数
2
解决办法
5万
查看次数

标签 统计

c# ×1