默认处理程序和后连接

信号可以有一个默认的处理程序。你需要做的就是在声明时给它一个正文。

public class Emitter : Object {
    public signal void my_signal () {
        print ("Hello from the default handler!\n");
    }
}

这个处理程序将始终在 connected 之后调用。但是如果要在默认值之后添加处理程序,则可以使用 connect_after 而不是 connect

var emitter = new Emitter ();
emitter.my_signal.connect_after (() => {
    print ("After the default handler!\n");
});
emitter.my_signal ();