我有一个类型的集合,我想过滤掉每个不具体的类型.
我可以看到我可以检查isAbstract和isInterface以捕获大多数非混凝土,但这会错过任何东西吗?
是否有"isConcrete"属性?
我想如果你IsClass && !IsAbstract尝试一下这可行吗?
if isConcreteType(myType) { DoSomething(); }
bool isConcreteType(Type type) {
return type.IsClass && !type.IsAbstract && !type.IsInterface;
}
Run Code Online (Sandbox Code Playgroud)
根据KC-NH的评论:
结构是值类型,因此IsClass将为false.你想结构被认为是具体的类吗?如果是这样,请删除IsClass条件
因此,如果您想将结构视为具体类型,则必须抛弃IsClass约束.
bool isConcreteType(Type type) { return !type.IsAbstract && !type.IsInterfaces; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2700 次 |
| 最近记录: |