|
|
1
3
重载opAccess()类似于在C++中重载赋值运算符。它是用来分配给对象本身的,而不是它的一个成员。它真的不会做你想做的事。我相信最接近你的是房产:
然而,如果你所寻找的是一种通用的方法,不必自己完成所有这些功能,那么没有直接的构造。我相信您可以使用编译时反射和字符串混合或模板混合来完成,它们将查看变量列表,然后为您生成每个属性函数。但是,对于每个函数,额外的处理代码必须基本相同,并且必须注意生成的代码是您真正想要的。我确信这是可行的,但我得在这个问题上努力一段时间才能找到一个可行的解决办法。 要生成这样的代码,您需要 __traits 和 std.traits template mixins 和 string mixins 用于代码生成。我会三思而后行生成这样的代码,而不是手写。它应该是相当可行的,但它不一定很容易,调试它可能是有趣的,如果你必须相当好地与D模板和mixin得到正确的。 但从本质上讲,您需要的是使用@property函数,这样您就可以添加处理程序代码,然后可能使用编译时反射和mixin来为您生成代码,但是生成这样的代码是一种相当高级的技术,因此您可能希望等到您对D有了更多的经验之后再尝试。 |
|
|
2
4
mixin字符串有点难看,但它们保留了正确的行数。 我向类添加如下属性:
|
|
|
vitaminC · 执行程序时无法理解tryLock方法 2 年前 |
|
|
Ronald · 用Java同步此vs字段 3 年前 |
|
|
Uuuuuumm · 当一个方法被并发方法调用时,我如何同步运行它 3 年前 |
|
|
wpunkts · 如何使用外部信号控制视频播放的速度和方向 3 年前 |