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个内置的类型",尽管我在网上找不到任何参考资料,也没有找到其他人提到它。

所以我很想知道——这就是全部吗?如果没有,你是如何找到剩下的,你在任何项目中使用过它们吗?

c#(甚至CLR)中有多少内置值类型?

我怀疑它的意思是"在。net框架中"而不是"在CLR中"。(c#定义的相对较少。注意,enumstruct本身不是类型。CLR本身知道的甚至更少——例如,它没有对decimal的任何特殊支持。

你的列表不包括DateTime, TimeSpan, Guid, List<T>.Enumerator等。基本上,您可以加载一堆带有反射的程序集来查找更多。我怀疑认证指南实际上指的是框架中的一组值类型。

" CLR中有超过400种内置值类型"

任何结构体都是值类型,所以如果这句话是准确的,我认为它一定意味着包括BCL(不是CLR)中的每个结构体。

struct是一个值类型,所以也要计算。

我猜这400种内置类型包括结构体和枚举。

根据MSDN的实际类型只有你列出的- http://msdn.microsoft.com/en-us/library/ya5y69ds.aspx