从 C# 中的 class 调用函数

Call function from a class in C#

我正在使用 CefSharp 作为图形界面,我想在用户按下按钮 'close' 时关闭 window。现在我必须从函数 exit(); 调用函数 close();,它位于 class CallbackObjectForJs 的内部。我该怎么做?

ChromiumWebBrowser browser;
public void close()
{
    this.Close();
}
private void form2_Load(object sender, EventArgs e)
{
    browser = new ChromiumWebBrowser("www.myurl.com");
    browser.RegisterJsObject("csalert", new CallbackObjectForJs());
    this.Controls.Add(browser);
}
public class CallbackObjectForJs{
    public void alert(string msg){
        MessageBox.Show(msg);
    }
    public void exit() {
        close(); //that not works
    }
}

你不能直接使用close,但你可以使用一个小技巧,将实例传递给CallbackObjectForJs

中的构造方法
ChromiumWebBrowser browser;
public void close()
{
    this.Close();
}
private void form2_Load(object sender, EventArgs e)
{
    browser = new ChromiumWebBrowser("www.myurl.com");
    browser.RegisterJsObject("csalert", new CallbackObjectForJs(this));
    this.Controls.Add(browser);
}

public class CallbackObjectForJs{

    Form _form;

    public CallbackObjectForJs(Form form){

        _form = form;
    }

    public void alert(string msg){
        MessageBox.Show(msg);
    }
    public void exit() {
        _form.close(); 
    }
}