山口屋~活動日誌~

私生活で主な出来事をピックアップ

C# Type

2012-07-07 12:11:53 | ソフトウェア開発
C#のTypeクラスは,クラス,構造体などのメンバ情報を取得する際などに利用できるクラスである。

まず,typeof演算子を使い,Typeオブジェクトを取得する。

例文
Type type = typeof(NameObject);

続いて,ここからはリフレクション機能を使わなければならないので,usingステートメントを追加する。

例文
using System.Reflection;

欲しいメンバ情報に合わせてTypeオブジェクトのメソッドを実行する。メソッドは何種類かある。

GetMembers:MemberInfoオブジェクトを返す。BindingFlagsで検索条件を指定。
GetProperties:
GetMethods:MethodInfoオブジェクトを返す。
GetFields:
GetInterfaces:
GetEvents:
GetNestedTypes:

属性情報を取得したい場合は,リフレクション機能を使い,MemberInfoオブジェクトに対して,AttributeクラスのGetCustomAttributesメソッドを実行する。

例文
Attribute.GetCustomAttributes(memberInfo, typeof(NameAttribute);

なお,Typeクラス,MethodInfoクラスはいずれもMemberInfoクラスの派生クラス,サブクラスである。

参考・引用

C# によるプログラミング入門
DOBON.NET プログラミング道