gpt4 book ai didi

c# - Type.IsGenericTypeDefinition 和 Type.ContainsGenericParameters 之间的区别

转载 作者:IT王子 更新时间:2023-10-29 04:38:23 26 4
gpt4 key购买 nike

System.Type 类型包含属性 IsGenericTypeDefinitionContainsGenericParameters .阅读 MSDN 文档后,我得出结论,存在这两个属性以检查类型是开放泛型类型还是封闭泛型类型。

但是,我看不出两者之间有什么区别,以及何时需要使用其中之一。

最佳答案

Type.ContainsGenericParameters递归的:

var genericList = typeof(List<>);
var listOfSomeUnknownTypeOfList = genericList.MakeGenericType(genericList);
listOfSomeUnknownTypeOfList.IsGenericTypeDefinition; // => false
listOfSomeUnknownTypeOfList.ContainsGenericParameters; // => true

这里发生的是 listOfSomeUnknownTypeOfList本身不是泛型类型定义,因为已知其类型参数是 List<T>对于一些 T。但是,由于 listOfSomeUnknownTypeOfList 的类型不完全已知(因为它的类型参数是类型定义)ContainsGenericParameterstrue .

关于c# - Type.IsGenericTypeDefinition 和 Type.ContainsGenericParameters 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13012733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com