聊一聊C#基本类型

C#基本类型

闲来无事,重新温习了下C#基本类型。以下讲的基本类型主要是包括基本的值类型类型和string。struct和class不包含其中。

C#基本类型------值类型:

bool,byte,sbyte,char,short,ushort,int,uint,long,ulong,float,double,decimal

特殊值类型:

时间类型,枚举类型实为系统定义的结构类型。

C#基本类型-------引用类型:

string,object,各类可空类型,Array

 

值类型的信息

bool -> System.Boolean :布尔型,其值为 true 或者 false,占用4个字节;

byte -> System.Byte :字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255;

sbyte -> System.SByte :带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127;

char -> System.Char :字符型,占有两个字节,表示 1 个 Unicode 字符;

short -> System.Int16 :短整型,占 2 字节,表示 16 位整数,范围 -32,768 ~ 32,767;

ushort -> System.UInt16 :无符号短整型,占 2 字节,表示 16 位正整数,范围 0 ~ 65,535;

uint -> System.UInt32 :无符号整型,占 4 字节,表示 32 位正整数,范围 0 ~ 4,294,967,295;

int -> System.Int32 :整型,占 4 字节,表示 32 位整数,范围 -2,147,483,648 到 2,147,483,647;

ulong -> System.UInt64 :无符号长整型,占 8 字节,表示 64 位正整数,范围 0 ~ 大约 10 的 20 次方;

long -> System.Int64 :长整型,占 8 字节,表示 64 位整数,范围大约 -(10 的 19) 次方 到 10 的 19 次方;

float -> System.Single :单精度浮点型,占 4 个字节,范围-3.4 × 10的38次方 到 +3.4 × 10的38;

double -> System.Double :双精度浮点型。

decimal->System.Decimal:占16个字节。

具体信息如下

 

可通过类似以下程序获取类型长度信息:

long l = 1000;
int long_length = Marshal.SizeOf(l);

 

输出类型信息

 1  private static List<string> GetSimpleTypeNameList()
 2         {
 3             List<string> simpleTypeList = new List<string>();
 4             simpleTypeList.Add(typeof(char).ToString());
 5             simpleTypeList.Add(typeof(short).ToString());
 6             simpleTypeList.Add(typeof(ushort).ToString());
 7             simpleTypeList.Add(typeof(int).ToString());
 8             simpleTypeList.Add(typeof(uint).ToString());
 9             simpleTypeList.Add(typeof(long).ToString());
10             simpleTypeList.Add(typeof(ulong).ToString());
11             simpleTypeList.Add(typeof(float).ToString());
12             simpleTypeList.Add(typeof(double).ToString());
13             simpleTypeList.Add(typeof(decimal).ToString());
14             simpleTypeList.Add(typeof(bool).ToString());
15             simpleTypeList.Add(typeof(byte).ToString());
16             simpleTypeList.Add(typeof(sbyte).ToString());
17 
18             simpleTypeList.Add(typeof(DateTime).ToString());
19             simpleTypeList.Add(typeof(object).ToString());
20             simpleTypeList.Add(typeof(string).ToString());
21             simpleTypeList.Add(typeof(Array).ToString());
22             simpleTypeList.Add(typeof(char?).ToString());
23             simpleTypeList.Add(typeof(short?).ToString());
24             simpleTypeList.Add(typeof(ushort?).ToString());
25             simpleTypeList.Add(typeof(int?).ToString());
26             simpleTypeList.Add(typeof(uint?).ToString());
27             simpleTypeList.Add(typeof(long?).ToString());
28             simpleTypeList.Add(typeof(ulong?).ToString());
29             simpleTypeList.Add(typeof(float?).ToString());
30             simpleTypeList.Add(typeof(double?).ToString());
31             simpleTypeList.Add(typeof(decimal?).ToString());
32             simpleTypeList.Add(typeof(bool?).ToString());
33             simpleTypeList.Add(typeof(DateTime?).ToString());
34             simpleTypeList.Add(typeof(byte?).ToString());
35             simpleTypeList.Add(typeof(sbyte?).ToString());
36             
37             return simpleTypeList;
38         }

 

调用输出得到信息如下:

 

 各类型的默认值

数值类型的默认值一般都是0;

时间类型默认0001/1/1 0:00:00;

其他类型默认为空。

示例如下

1             Console.WriteLine(default(int));
2             Console.WriteLine(default(float));
3             Console.WriteLine(default(DateTime));
4             Console.WriteLine(default(char));
5             Console.WriteLine(default(string));
6             Console.WriteLine(default(Array));
7             Console.WriteLine(default(int?));

输出结果:

 

 以上

-------------------------------------

 

posted on 2018-04-13 18:00  john_yong  阅读(394)  评论(0编辑  收藏  举报

导航