5
我测试的对象是这样的:是否有可能看到一个对象是否继承IDictionary而不使用泛型类型参数?
if (item is IDictionary<object, object>)
但是,这并不符合所有类型<sting, object>, <int, string>
等其他组合的...
我只是想知道,如果它已经实现的接口,无论它使用的是什么泛型类型。
我发现了一个例子说,这是有可能做这样的事情:
dictionary.GetType().GetInterfaces().Any(x => x.GetGenericTypeDefinition == typeof(IDictionary<>));
但我还是要指定类型的签名,或者它是无效的。
是否有可能做一个语句来检查接口而不必指定类型?
根据你的最终需求,如果你想知道你是否有字典而不是特定的IDictionary ,你可以检查非泛型的IDictionary,而不是字典也实现。这个解决方案将取决于你的使用案例。 –