형식 비교와 관련하여 흥미로운 문제가 있습니다. 뭔가 내 테스트 동안 수집명시 적 형식과의 암시 적 형식 비교 - C#
var obField = value.GetType().InvokeMember(_stCollectionField,
System.Reflection.BindingFlags.GetProperty,
null, value, null);
if (obField.GetType() != typeof(IEnumerable<object>))
{
return true;
}
어떤 종류의 경우 I 테스트, 명시 적 유형으로 묵시적 타입을 비교하려고 해요, 나는 obField
이 개체의 컬렉션으로 판명 것이라는 점을 보장 할 수 있습니다. 그러나, 나는 항상 내가 그 건너 뛸하고자하는 대신 확인 및 return true
, 내부에서 실행됩니다 찾는하고있어 (두 가지 유형이 동일 변경할 수 없기.)
약간의 디버깅은 나에게 obField
object {System.Collections.Generic.List<System.DateTime>}
등의 유형을 제공합니다 .
어떻게하면 해당 유형과 일치시킬 수 있습니까?
감사
'목록'명확 타입의'IEnumerable을하지 않습니다
목록는 IEnumerable 을 확장합니까? –
AndyBursh
@Andy : 사실이지만 "=="은 "확장 가능"이 아니라 "is * equal to to"를 의미합니다 ("! ="에도 동일하게 적용됩니다). 'List'와'IEnumerable