アノテーション

2005 年 8 月 12 日

プログラム要素(通常、クラス、メソッド、またはフィールド)に関するアノテーションとは、プログラム要素に追加されるメタデータの一種であり、その要素を余分なコードで装飾するために使用できます。

Java ではアノテーションと呼ばれますが、C# では属性と呼ばれます。C# は最初のリリース以来属性を持っていますが、Java ではバージョン 1.5 で登場しました。

属性の良い例は、廃止される要素(Java の非推奨に相当)をマークするための C# の [Obsolete] 属性です。Obsolete 属性は、メッセージを出力したり、要素の使用がエラーなのか警告なのかを示したりする引数を受け取ることができます。言語プラットフォームには多くのアノテーションが定義されていますが、独自のものを追加することもできます。

プログラミングについて書く際には、私は一般的に「アノテーション」という用語を使用するほうが好きです。.NET が最初にありましたが、「属性」という言葉はさまざまなことに対してあまりにも広く使用されています。

言語は、言語の構文に反映されない方法でアノテーションを提供する場合があります。たとえば、RubyAnnotations は非常に一般的ですが、クラスメソッドを使用して行われます。