型の比較に関して興味深い問題があります。私は何かが私のテスト中にコレクションの任意の並べ替え明示的な型と明示的な型の比較 - C#
var obField = value.GetType().InvokeMember(_stCollectionField,
System.Reflection.BindingFlags.GetProperty,
null, value, null);
if (obField.GetType() != typeof(IEnumerable<object>))
{
return true;
}
であれば、私はobField
は、オブジェクトのコレクションであることが判明することを保証することができますテストするために、明示的な型との暗黙の種類を比較しようとしています。しかし、私はそれは常にその代わり、私はそれはそれをスキップしたいチェックやreturn true
、内部で実行されることを発見しています(2種類が等しいbecasue。)
少しデバッグがobject {System.Collections.Generic.List<System.DateTime>}
として私obField
の種類を提供します。
どのようにしてそのタイプにマッチすることができますか?
おかげ
'それは明らかタイプの'のIEnumerableない 'obField'は型である'一覧場合
リストはIEnumerable を拡張しますか? –
AndyBursh
@Andy:真ですが、 "=="は "から拡張可能"を意味するわけではなく、 "is * equal * to"を意味します(同じことが "!="のために保持されます)。 'List'と 'IEnumerable