c#(甚至CLR)中有多少内置值类型?
本文关键字:内置 多少 类型 甚至 CLR | 更新日期: 2023-09-27 18:03:27
我们都知道c#中有15种常见的值类型:
sbyte, short, int, long, byte, ushort, uint, ulong, char, float, double, decimal, bool, enum, struct
如果你分别计算nullable
对应项,则它们为30。
我记得有一本MS认证书提到"在CLR中有超过400个内置的值类型",尽管我在网上找不到任何参考资料,也没有找到其他人提到它。
所以我很想知道——这就是全部吗?如果没有,你是如何找到剩下的,你在任何项目中使用过它们吗?
我怀疑它的意思是"在。net框架中"而不是"在CLR中"。(c#定义的相对较少。注意,enum
和struct
本身不是类型。CLR本身知道的甚至更少——例如,它没有对decimal
的任何特殊支持。
你的列表不包括DateTime
, TimeSpan
, Guid
, List<T>.Enumerator
等。基本上,您可以加载一堆带有反射的程序集来查找更多。我怀疑认证指南实际上指的是框架中的一组值类型。
" CLR中有超过400种内置值类型"
任何结构体都是值类型,所以如果这句话是准确的,我认为它一定意味着包括BCL(不是CLR)中的每个结构体。
struct
是一个值类型,所以也要计算。
我猜这400种内置类型包括结构体和枚举。
根据MSDN的实际类型只有你列出的- http://msdn.microsoft.com/en-us/library/ya5y69ds.aspx