假设我有一个Type
called type
.
我想确定是否可以对我的类型执行此操作(无需对每种类型实际执行此操作):
If type
is System.Windows.Point
那么我可以这样做:
Point point1 = new Point();
然而如果type
is System.Environment
那么这不会飞:
Environment environment1 = new Environment(); //wrong
因此,如果我迭代程序集中的每个可见类型,如何跳过无法创建像第二个这样的实例的所有类型?我对反思不太熟悉,所以我对术语还不太了解。希望我在这里尝试做的事情非常清楚。
static
类已声明abstract
and sealed
在IL级别。所以,你可以检查IsAbstract
处理两者的属性abstract
类和static
一次性上课(适合您的用例)。
然而,abstract
类并不是唯一不能直接实例化的类型。您应该检查诸如接口之类的东西(没有CoClass属性 https://stackoverflow.com/questions/1093536/how-does-the-c-compiler-detect-com-types) 以及没有调用代码可访问的构造函数的类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)