Vala文件导入

时间:2015-04-25 00:44:43

标签: linux oop vala

使用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#的对象系统中没有发生。 有人可以解释一下吗?

1 个答案:

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