瓦拉文件导入

Vala files import

我在使用 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; // <--
    ...

您不能将任意代码放入 class 本身,只能是声明。你需要做的是

public class GUI : Objects
{
    Person _person = new Person();
    construct {
        _person.age = 35;
    }

您还可以修改向 Person 添加构造函数 class:

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);