一,C#数据类型的分类
C#提供的数据类型可以分为两大类:一类是值类型,一类是引用类型。
值类型又进一步划分为:简单类型,枚举类型,结构类型和可空类型;引用类型则进一步划分为:类类型,接口类型,数组类型 和委托类型;
二,值类型和引用类型的区别
值类型变量直接保存变量的值,引用类型的变量保存的是数据的引用地址,引用类型的变量也叫对象。
进行数据操作时:对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其他变量;而对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用的是同一个对象,实际上就是它们在堆栈中保存的堆的地址相同,因此对一个引用类型的变量进行操作就会影响到引用同一个对象的另一个变量。
例如:
例一:
static void Main(string[] args)
{
int i = 1;
int j = 2;
int k = i;
i = 3;
j = 4;
Console.WriteLine(k);
Console.ReadKey();
}
结果K的值还是为 :1
例二:
class Program
{
static void Main(string[] args)
{
FF f = new FF();
FF f1 = new FF();
f1 = f;
f.age = 10;
f1.age = 20;
Console.WriteLine(f.age);
Console.ReadKey();
}
}
class FF
{
public int age = 1;
}
结果:f.age的值是20.因为f和f1是引用类型,并且指向了同一个堆栈,改变f1的值就是改变了堆栈里的值,所以,f.age的值为20;
三,C#中的常用数据类型
(1),C#中提供了八种整
1字节有符号:sbyte; 1字节无符号:byte
2字节有符号:short 2字节无符号:ushort
4字节有符号:int 4字节无符号:uint
8字节有符号:long 8字节无符号:ulong
其中,最常用的是int类型。
(2),浮点类型
4字节浮点数:float 8字节浮点数:double
16字节浮点数:decimal。
其中,最常用的是double和decimal。而ddecimal是一个特殊的浮点数,它虽然范围没有double的大,但是精度却很高,适用于金融,货币等需要高精度的领域。
注意:decimal类型后面必须加一个M/m,去告诉编译器这个是decimal类型的。例如:decimal Money = 1234.34m;
(3),布尔型
布尔类型用bool表示,属于值类型,只有两个值:true和false;
例如:bool flag = true;
在C#语言中,条件表达式的结果必须是bool类型的;
例如:
static void Main(string[] args)
{
int i = 1;
int j = 2;
if (i == j)
i++;
if (i < j)
i--;
if (i > j)
i++;
Console.ReadKey();
}
(4),字符类型和字符串类型
字符类型属于值类型:用Char表示,只能存储一个字符,并且不能为空,但可以有一个空格,因为空格也是一个字符 ,并且存储的这个字符必须用单引号引起来
例如:char cha = ‘男’;
字符串类型属于引用类型,用String表示,string类型就是把0个或1个或多个字符连接起来的 ,字符串要求用双引号引起来。
例如:string str = “你好啊”;