使用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#的对象系统中没有发生。 有人可以解释一下吗?
答案 0 :(得分:3)
问题在于:
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);