在我编写一些处理反射的辅助函数时,我正在思考这个问题。在C#中除了class
es,struct
s,enum
和interface
之外还有其他什么吗?如果我编写了一个检查class
,struct
,enum
和interface
的函数,那么是否包含全部函数?
帮助我完善这种层次结构的想法:
reference type value type
| |
--------------- ----------
| | | |
interface class struct enum
// the all encompassing function - pseudo code:
public static bool IsC#Stuff(this Type type)
{
return type.IsEnum || type.IsStruct || type.IsClass || type.IsInterface;
}
我错过了什么吗?
答案 0 :(得分:3)
还有数组和委托,尽管这些实际上是类。
在泛型方法或类型的定义中还有对方法的引用(ref
参数)和泛型类型参数。
在不安全的代码中,也有指针。
答案 1 :(得分:1)
不确定这是您问题的直接答案,但.NET有5种类型:
class,struct,interface,delegate和enum