将信息从班级返回到表格[C#]

WB3*_*000 0 c# events

我目前正试图将我的一些代码与我的主窗体分开,并创建类文件来处理一些操作.我已经读到将类绑定到UI并不是一个好习惯,所以我想知道如何仍然返回有关课堂上发生的事件进展的信息.当代码出现在主窗体中时,我会将函数的状态更新写入文本框,以便用户可以知道发生了什么.

如何通过主窗体从类更新用户的例程状态?

Ed *_* S. 8

class Foo
{
    public event EventHandler DidSomething = delegate { };

    public void DoSomething( )
    {
        // do stuff, fire event
        OnDidSomething( EventArgs.Empty );
    }

    protected virtual void OnDidSomething( EventArgs e )
    {
        DidSomething( this, e );
    }
}
Run Code Online (Sandbox Code Playgroud)

主表单可以订阅"DidSomething"事件并根据需要采取措施.

public class Form1 : Form
{ 
    public Form1( )
    {
        Foo f = new Foo( )
        f.DidSomething += f_DidSomething;
        f.DoSomething( );
    }


    void f_DidSomething( object sender, EventArgs e )
    {
        MessageBox.Show( "Event Fired" );
    }
}
Run Code Online (Sandbox Code Playgroud)