2

是否可以使用 D 的内置特征和/或 std.traits 来检测函数(在类/结构内或没有)是否用 @property 注释?我知道@property 并不是一个真正的属性,但我认为__traits(getAttributes, ...)可能会这样做(没有这样的运气)。

4

1 回答 1

4

一般来说,我认为最好只测试你想要使用的表达式编译(例如is(typeof(var.prop))),但如果由于某种原因你真的需要知道一个函数被标记为@property,那么你可以使用std.traits .functionAttributes来获取该信息。就像是

enum isProperty = (functionAttributes!(MyType.prop) & FunctionAttribute.property) != 0;

应该管用。

于 2013-06-24T16:07:43.213 回答