对象是否被实例化
is the object instanciated
这里是 vala 的示例源代码,用于从 elementary os 网站
创建一个简单的 GTK 应用程序
public class Examples.Application : Gtk.Application {
public Application () {
Object (
application_id: "org.valadoc.examples",
flags: ApplicationFlags.FLAGS_NONE
);
}
protected override void activate () {
var application_window = new Gtk.ApplicationWindow (this);
application_window.show_all ();
}
public static int main (string[] args) {
var app = new Application ();
return app.run (args);
}
}
我不明白这段代码中的对象?它是什么?它是一个对象吗?如果它是一个对象那么为什么它没有新的 keword 并且没有实例化?
您在构造函数中看到的 Object()
是 Vala 特定的语法,称为:GObject-style construction。它允许您一次设置所有属性。
这允许您使用 GObject 所谓的“构造属性”:可以在构造期间设置的属性(有时它们甚至只能在构造期间专门设置)。
这里是 vala 的示例源代码,用于从 elementary os 网站
创建一个简单的 GTK 应用程序
public class Examples.Application : Gtk.Application {
public Application () {
Object (
application_id: "org.valadoc.examples",
flags: ApplicationFlags.FLAGS_NONE
);
}
protected override void activate () {
var application_window = new Gtk.ApplicationWindow (this);
application_window.show_all ();
}
public static int main (string[] args) {
var app = new Application ();
return app.run (args);
}
}
我不明白这段代码中的对象?它是什么?它是一个对象吗?如果它是一个对象那么为什么它没有新的 keword 并且没有实例化?
您在构造函数中看到的 Object()
是 Vala 特定的语法,称为:GObject-style construction。它允许您一次设置所有属性。
这允许您使用 GObject 所谓的“构造属性”:可以在构造期间设置的属性(有时它们甚至只能在构造期间专门设置)。