.net column

.NET開発者のためのブログメディア
ビューイメージ

C#の属性(Attribute)とは?使い方を解説

2020年03月03日

プログラミングを学習し始めた方なら、C#の属性を一度は目にしたことがあるかもしれません。ここでは「属性とはなに?」と疑問に思われている方に、C#の属性の概要とその使い方をわかりやすく説明していきたいと思います。

PG
属性について内容が難しくて理解が追いつかず、困っています。
PL
属性の定義は難しいところがあります。ここでは、代表的な例も交えてお伝えしますね。

属性の定義とは?属性の概要と構文の解説

属性(Attribute)とは、クラス・構造体などの型、またはそのメンバー(メゾット・プロパティなど)に対して付与できる追加情報です。
属性を利用することで、本来のロジックと直接に関係ない付随的な情報を、ソースコードに追加できます。

PublicやPrivateもある意味属性

厳密にいうと属性と定義すると違うのでは?という意見もありますがイメージがしやすいため紹介させていただきます。
publicは「このメンバーはクラス外からも参照することが可能」という追加情報が当たれられ、privateは「このメンバーはクラス内だけ参照可能」という情報が付与されます。

属性の構文

属性はクラスやメンバーの前に[]でくくり記述します。

(例)
=============

=============

このように記述を行うとメゾットに対してTestMethodでマークしておくことで、そのメゾットがテストメゾットであると認識することができます。
また、属性は複数設定することができます。 複数設定をする場合は改行を行い記述をしましょう。

(例)
=============

=============

改行をすることによって綺麗に見やすい構文が完成します。

属性を使った例文

ここでは代表的な属性「Obsolete」を使った例文を紹介します。この属性を使用することによって該当のクラス、またはそのメンバーが旧型式(非推奨)であることをコンパイラーに通知できます。
プログラムを消すと問題が発生してしまうため残したい。ただ、旧型のプログラムのため今後ほかの人に使ってほしくない時にこの属性を使用しているとその旨を通知してくれるようになります。

この記述はfirstとsuperfirst を使用した際に警告が出るようになっています。

禁止されているのに使用されているため、画面では警告が出るようになっています。
このように「禁止されているものを誤って使った場合に警告を出す」というのをObsoleteという属性を記述することにより簡単にコントロールをすることができます。

PG
PublicやPrivateであれば、いつも使っているから理解しやすいです!
PL
厳密にいうと属性とはいえませんが、イメージとしてはつかみやすいと思います。これを機に属性の理解を深めていくと良いでしょう。

C#の属性は数多く存在する

今回お伝えしたことは属性の基本的なポイントのみになります。このほかにも標準の属性が沢山ありますし、属性を自作することも可能です。まずは、分かりやすいObsolete属性から勉強していき少しずつ属性を学んでいきましょう。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)