1

APIを使用してIMetaDataImportおり、アセンブリ内の型定義が値型か参照型かを判断する必要があります。この情報を明示的に提供する API のメソッドは見つかりませんでした。ただし、基本型を簡単に取得して、それが であるかどうかを確認できますSystem.ValueType

私の質問は次のとおりです:基本クラスは、型が値型であるという事実をCLIメタデータがエンコードする唯一の方法ですか、それともこれに対するフラグがどこかにありますか?

4

2 に答える 2

1

値の型を直接識別するフラグはありません。他のいくつかのこととともに、基本タイプをチェックすることが、それを行うための標準的な方法のようです。

ECMA CLI 仕様のセクション II.10.1.3 では、次のような型定義について説明しています。

型セマンティック属性は、インターフェイス、クラス、または値の型を定義するかどうかを指定します。interface属性は、インターフェイスを指定します。この属性が存在せず、定義が (直接的または間接的に) 拡張さSystem.ValueTypeれ、定義が 用System.Enumでない場合、値の型が定義されます。それ以外の場合は、クラスを定義する必要があります。

于 2012-07-01T00:43:42.623 に答える
0

お探しのType.IsValueType物件はありますか?

于 2012-07-01T00:45:57.320 に答える