类型简述
C#是强类型语言,C#的变量、常量、表达式、方法的参数和返回值都需要指定类型以便在编译时便能确定其类型,并做相关的检查;(dynamic另说)。.NET Class Library定义了一批内置的数值类型(numberic types)和复杂类型(complex types)。
类型,主要包含在里的信息有:
-
类型变量需要的存储空间;
-
可以存储的最大值和最小值;
-
可以包含的成员:方法,属性等;
-
继承的基类;
-
分配内存的位置;
-
可以针对变量进行的操作;
编译器如何使用类型信息:
-
编译器通过类型type的信息来确保代码操作是类型安全的;
-
编译器把类型信息作为元数据(metadata)嵌入到可执行文件中;然后,CLR(common language runtime)在运行时,根据metadata进一步保证运行时的内存分配和回收是类型安全的(type safe)。
C#内置值类型
C# type keyword |
.NET type |
bool | System.Boolen |
byte | System.Byte |
sbyte | System.SByte |
char | System.Char |
decimal | System.Decimal |
double | System.Double |
float | System.Single |
int | Sytem.Int32 |
uint | System.UInt32 |
long | System.Int64 |
ulong | System.UInt64 |
short | System.Int16 |
ushort | System.UInt16 |
C#内置引用类型
C# type keyword | .NET Type |
object | System.Object |
string | Sytem.String |
自定义类型
可以使用struct, class, interface, enum创建自定义的类型。