use*_*939 10 c# reflection types interface instantiation
在C#中,如何确定是否Type
可以实例化? 我试图避免Activator.CreateInstance异常.
我当前的方法是type.IsClass && !type.IsInterface
,但我担心这可能会失败抽象类,等等.我也考虑过检查type.TypeInitializer == null
,但我不确定这是否也是万无一失的.
找出a Type
是否可实例化的最简单/最有效的方法是什么?
还有很多其他的陷阱.它可以有一个私有或受保护的构造函数.或者它可能没有默认构造函数,只有构造函数采用某些参数类型.如果您不得不担心,那么当它不应该被使用时你肯定会使用Activator.CreateInstance().只是任意构建对象只能造成破坏,你不知道它们可能有什么样的副作用.避免使用"FormatDisk"类.
一个例外是你的朋友,它告诉你你的假设是错误的.永远不要故意阻止.NET框架的帮助.
归档时间: |
|
查看次数: |
3598 次 |
最近记录: |