EventArgs
イベントを呼び出すクラスに情報を返す目的でイベントハンドラーを変更することは嫌われていますか?
たとえば、SSLの証明書を検証する必要がある低レベルの通信クラスがあるが、それはクラスのさまざまなユーザーの知識であるため、有効な証明書がどのように見えるかを知る方法がない場合です。
class ValidationEventArgs : System.EventArgs
{
public X509Certificate Certificate { get; set; }
public bool Valid { get; set; }
}
次に、オブジェクトを使用してイベントに接続し、Valid
フラグを変更して証明書が受け入れ可能かどうかを確認します。
comms.ValidationEvent += CertValidationHandler;
void CertValidationHandler(ValidationEventArgs args)
{
if (args.Certificate.Issuer.Contains(COMPANY_NAME))
args.Valid = true;
}
私はこのように使用されているという言及を見つけましEventArgs
たが、それは推奨されないと言う人々も見ました。
編集:EventArgs
多分私はこれが継承についてではなく、コミュニケーションの双方向チャネルとしてそれらを使用することについてであることを明確にする必要があります。他の人がコメントしたように、これは許容範囲であり、Googleが反対に拾うどんなノイズも、おそらく概念を誤解/誤用した人々であり、今ではと同じ個人的な十字軍を持っていgoto
ます。