瓦拉文件导入
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);
我在使用 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);