C#的数据类型是怎么划分的?
C#分为五大数据类型:
1,类(classes):如 Window,Form,Console,String
2,结构体(structures):如 Int32,Int64,Single,Double
3,枚举(enumerations):如 HorizontalAlignment,Visibility
4,接口(interfaces)
5,委托(delegates)
其中类、接口、委托叫做引用类型,结构体、枚举叫做值类型。
值类型的变量:值类型没有实例,所谓的“实例”与变量合而为一。
引用类型变量与实例的关系:引用类型变量里存储的数据是对象的内存地址。
C#中,值类型的数据被保存在栈(stack)上,而引用类型的数据被保存在堆(heap)上,在栈上只是保存了这些数据在堆内存中的首地址。
什么是变量?
表面上来看,变量的用途就是存储数据。实际上,变量表示了存储位置,并且每个变量都有一个类型,以决定什么样的值能够存入变量。
变量一共有7种:
静态变量:
public static int Amount;
实例变量(成员变量,字段):
public int Age;
public string Name;
数组元素:
int[] array = new int[100];
array[99];
值参数:
public double Add(double a,double b)
{
return a+b;
}
引用参数:
public double Add(ref double a,double b)
{
return a+b;
}
输出形参:
public double Add(out double a,double b)
{
return a+b;
}
局部变量:
public double Add(double a,double b)
{
double result = a+b;
return result;
}
狭义的变量指局部变量,因为其它种类的变量都有自己的约定名称,简单的讲局部变量就是方法体(函数体)里声明的变量。
总的来说,变量就是以变量名所对应的内存地址为起点,以其数据类型所要求的存储空间为长度的一块内存区域。
变量的声明:告诉编译器有这样一个变量。
组成:有效的修饰符组合(opt) 类型 变量名 初始化器(opt 可选 可有可无):
Public static int Amount = 100;
装箱与拆箱:
装箱:将值类型转换为引用类型
拆箱:将引用类型转换为值类型