“GetElementType”的令人困惑的结果在数组和通用列表上
通用列表:
var elementType1 = typeof (List<A>).GetElementType();
数组:
var elementType = typeof (A[]).GetElementType();
为什么我只能获取数组的元素类型? 如何获取通用列表的元素类型? (注:通用列表已加框)
Generic list:
var elementType1 = typeof (List<A>).GetElementType();
Array:
var elementType = typeof (A[]).GetElementType();
Why do I only get the element type of an array?
How could I get the element type of a generic list? (remark: the generic list is boxed)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
GetElementType
仅获取数组、指针和引用类型的元素类型。反射 API 不“知道”
List
是一个泛型容器,并且其构造类型之一的类型参数代表该类型它所包含的元素。使用
GetGenericArguments
方法来获取构造类型的类型参数:GetElementType
only gets the element-type for array, pointer and reference types.The reflection API doesn't "know" that
List<T>
is a generic container and that the type-argument of one of its constructed types is representative of the type of the elements it contains.Use the
GetGenericArguments
method instead to get the type-arguments of the constructed type: