注释
关于程序元素(例如类和方法)的数据,这些数据可以在编译或执行期间处理。
我们习惯于对程序中的数据进行分类,并制定关于它们如何工作的规则。客户可以按地区分组,并有付款规则。通常,对程序本身的元素制定此类规则很有用。语言通常提供一些内置机制来做到这一点,例如访问控制,允许我们将类和方法标记为公共或私有。
但是,我们经常希望标记一些超出语言支持范围,甚至应该合理支持范围的事情。我们可能希望限制整数字段可能取的值,标记应作为测试的一部分运行的方法,或指示类可以安全地序列化。
注释是关于程序元素的信息。我们可以在运行时获取此信息并对其进行操作,或者如果环境支持,甚至可以在编译时进行操作。因此,注释提供了一种扩展编程语言的机制。
我在这里使用了“注释”一词,因为这是 Java 编程语言中使用的术语。.NET 中的类似语法早于此,但其术语“属性”在其他概念中使用过于广泛,因此我更喜欢遵循 Java 术语。但是,这里的概念比语法更广泛,并且可以在没有这种特殊语法的情况下实现相同的好处。
有关更多详细信息,请参阅 DSL 书籍 的第 42 章