当前位置:  开发笔记 > 编程语言 > 正文

如何取消可以取消的活动?

如何解决《如何取消可以取消的活动?》经验,为你挑选了1个好方法。

请帮助我实现一个事件,处理程序可以取消它.

public class BuildStartEventArgs : EventArgs
{
    public bool Cancel { get; set; }
}

class Foo
{
    public event EventHandler BuildStart;

    private void Bar()
    {
        // build started
        OnBuildStart(new BuildStartEventArgs());
        // how to catch cancellation?
    }

    private void OnBuildStart(BuildStartEventArgs e)
    {
        if (this.BuildStart != null)
        {
            this.BuildStart(this, e);
        }
    }
}

Richard.. 5

您需要修改此代码:

private void Bar()
{
    // build started
    OnBuildStart(new BuildStartEventArgs());
    // how to catch cancellation?
}

这样的事情:

private void Bar()
{
    var e = new BuildStartEventArgs();
    OnBuildStart(e);
    if (!e.Cancel) {
      // Do build
    }
}

.NET中的类具有引用语义,因此您可以看到对事件参数所做的任何更改引用.



1> Richard..:

您需要修改此代码:

private void Bar()
{
    // build started
    OnBuildStart(new BuildStartEventArgs());
    // how to catch cancellation?
}

这样的事情:

private void Bar()
{
    var e = new BuildStartEventArgs();
    OnBuildStart(e);
    if (!e.Cancel) {
      // Do build
    }
}

.NET中的类具有引用语义,因此您可以看到对事件参数所做的任何更改引用.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有