Vala 使用变量动态访问属性

Vala 使用变量动态访问属性,vala,Vala,当属性名的名称是变量时,如何从对象检索该属性 简单地使用以下方法似乎不起作用 object[prop_name] 在这种情况下,需要在更改后从GLib.Object动态检索值: device.notify[prop_name].connect((s, p) => { debug (" updated: %s", device[prop_name]); }); 下面的方法似乎有效 string value; device.get (prop_name, out value); d

当属性名的名称是变量时,如何从对象检索该属性

简单地使用以下方法似乎不起作用

object[prop_name]
在这种情况下,需要在更改后从
GLib.Object
动态检索值:

device.notify[prop_name].connect((s, p) => {
   debug ("  updated: %s", device[prop_name]);
});

下面的方法似乎有效

string value;
device.get (prop_name, out value);
debug ("  update: %s", value);

正确,您甚至可以一次获得多个属性值:设置与
set
一起工作,更改通知与
notify
信号一起工作,并且在
GLib.Object
中还有更酷的东西,比如绑定到属性。不用说,这只适用于从
GLib.Object
派生的类。