vala:获取属性的便捷方式

时间:2017-09-15 10:27:55

标签: vala

我知道可以使用以下简单语法按名称设置基于GLib.Object的类的属性

obj["foo"] = bar;

有没有办法以类似的方式获得物业的价值?以下结构似乎不起作用:

Bar bar = obj["foo"];

Vala返回错误:不允许调用void方法作为表达式

我知道它可以像下面的例子那样完成,但我正在寻找一些更加简洁的东西。

Bar bar;
obj.get("foo", out bar);

1 个答案:

答案 0 :(得分:4)

Bar bar = obj.foo;

您也应该使用类似的代码来设置属性,而不是上面写的内容:

obj.foo = bar;

这通常不是什么大问题,但这种形式往往比通过GObject属性更有效。而且它更短。恕我直言,它看起来也更好。