当使用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#面向对象系统中没有发生。有人能解释一下吗?
发布于 2015-04-25 22:49:53
问题是:
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);https://stackoverflow.com/questions/29859723
复制相似问题