我试着通过尝试
struct PropertyTest
{
@property int x() { return val; }
@property void x( int newVal ) { val = newVal; }
void test()
{
int j;
j = x;
x = 5;
}
private:
int val;
}
Run Code Online (Sandbox Code Playgroud)
当我离开时完全一样@property.一切都很好.那么将函数声明@property为什么意义呢?
顺便说一下,我正在使用dmd2编译器.
他们没有工作的原因@property是因为@property在他们允许属性方法语法后添加了.添加-property到DMD命令行会强制使用@property注释.出于向后兼容性原因,它不是默认设置.有一天它会成为默认(或者他们说),所以最好编译-property以确保你正确地注释.