質問: 私はフィルタリング機能に取り組んでいます。フィルタは、ユーザーが作成した式ツリーになります。ユーザーがフィルタリングに使用できる約30のフィールドがあります。最良の方法は、インデクサーでオブジェクトモデルを作成し、enum型のインデックスで必要な値にアクセスすることです。 この例を参照してください。 ``` enum Field { Name, Date, } class ObjectModel { object this[Field Key] { get { //... return xx; } } } ``` 式ツリーからインデクサーにアクセスするにはどうすればいいですか?
回答: インデクサーは、 `Item`と呼ばれる単純なプロパティです。つまり、その名前を使用して他のプロパティと同様にインデクサにアクセスできます。 indexerプロパティの名前は、 `IndexerName`属性を使用してクラスの実装者によって変更できます 。 インデクサプロパティの実際の名前を確実に取得するには、クラスを反映して`DefaultMember`属性を取得する`DefaultMember`ます 。 詳細はこちらをご覧ください 。