首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vala文件导入

Vala文件导入
EN

Stack Overflow用户
提问于 2015-04-25 00:44:42
回答 1查看 193关注 0票数 0

当使用Vala语言使用分隔文件中的属性时,我遇到了问题。

Main.vala文件是

代码语言:javascript
复制
using Teste;
using Cagado;

static int main(string[] args)
{   
   GUI gui = new GUI();
   stdout.printf("%d\n", gui.idade);
   return 0;
}

HelloVala.vala是:

代码语言:javascript
复制
namespace Teste
{
    public class Person : Object
    {
        private int _age = 32;

        public int age
        {
            get { return _age; }
            set { _age = value; }
        }
    }
}

Cagado.vala是:

代码语言:javascript
复制
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; }
        }
    }
}

当我编译这段代码时,编译会给出消息错误:

代码语言:javascript
复制
Cagado.vala:9.15-9.15: error: syntax error, expected identifier
    _person.age = 35;
                ^

我用C#编程,这在C#面向对象系统中没有发生。有人能解释一下吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-25 22:49:53

问题是:

代码语言:javascript
复制
public class GUI : Object
{
    Person _person = new Person();
    _person.age = 35; // <--
    ...

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

代码语言:javascript
复制
public class GUI : Objects
{
    Person _person = new Person();
    construct {
        _person.age = 35;
    }

还可以修改将构造函数添加到Person类:

代码语言:javascript
复制
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);
        }
    }
}

那就去做

代码语言:javascript
复制
public class GUI : Object
{
    Person _person = new Person(35);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29859723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档