在 Vala 语言中处理分隔文件中的属性时遇到问题
Main.vala 文件是
using Teste;
using Cagado;
static int main(string[] args)
{
GUI gui = new GUI();
stdout.printf("%d\n", gui.idade);
return 0;
}
HelloVala.vala 是:
namespace Teste
{
public class Person : Object
{
private int _age = 32;
public int age
{
get { return _age; }
set { _age = value; }
}
}
}
Cagado.vala 是:
using Teste;
namespace Cagado
{
public class GUI : Object
{
Person _person = new Person();
_person.age = 35;
private int _idade;
public int idade
{
get { return _idade; }
set { _idade = value; }
}
}
}
当我编译这段代码时,编译给我错误消息:
Cagado.vala:9.15-9.15: error: syntax error, expected identifier
_person.age = 35;
^
我用 C# 编程,而这在面向 C# 的对象系统中没有发生。 有人可以解释一下吗?
最佳答案
问题是这样的:
public class GUI : Object
{
Person _person = new Person();
_person.age = 35; // <--
...
您不能将任意代码放入类本身,只能是声明。你需要做的是像
public class GUI : Objects
{
Person _person = new Person();
construct {
_person.age = 35;
}
您还可以修改为 Person 类添加一个构造函数:
namespace Teste
{
public class Person : Object
{
private int _age = 32;
public int age
{
get { return _age; }
set { _age = value; }
}
public Person(int age) {
GLib.Object (age: age);
}
}
}
然后做
public class GUI : Object
{
Person _person = new Person(35);
关于linux - 瓦拉文件导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29859723/