.NET FrameWork(.NET框架)的两大核心组件是:
1. CLR(Common Language Runtime)公共语言运行时,提供所有.NET应用程序运行的环境。
CLR又包含两个组成部分
a. CLS(Common Language Specification)公共语言规范,所有的.net都遵循这个规则,遵循这个规则的语言在.Net框架下都可以实现互相调用。
b. CTS(Common type system)通用类型系统,保证.Net开发中不同的语言数据类型之间互相兼容。
2. FCL(.Net FrameWork Class Library) .Net FrameWork类库
值类型:不同的变量会分配不同的存储空间,存储空间中存储的是该变量的值
改变一个变量值不会影响另一个变量值
例如: int zhang = 180;
int li = zhang;
li = 190;
Console.Write(zhang);//180
引用类型:赋值是把原对象的引用传递给另一个引用,两个引用指向同一块内存空间
例如:int[] zhang = new int[]{170,60 };
int[] li = zhang;
li[0] = 180;
li[1] = 70;
Console.WriteLine("张浩的身高是:"+zhang[0]);//180
Console.WriteLine("张浩的体重是:"+zhang[1]);//70
*******************结构**************************
一.定义结构:
语法:访问修饰符 struct 结构名
{
定义结构成员
}
注意!!!结构中可以有字段,也可以由方法。结构是值类型。
例如: public struct Student
{
public int id;
public int age; //注意:结构中的字段不能直接赋初值
public void Show()
{
Console.WriteLine("ID:{0}\n年龄:{1}",id,age);
}
}
二:使用结构:
注意!!使用结构可以new 也可以不new
例如:
Student stu; //创建学生结构
stu.id = 1001; //给学号赋值
stu.age = 20; //给年龄赋值
stu.Show();
温馨提示:当对象需要用较少的字段来表示时,可以选用结构
因为结构是值类型,数据提取速度快
但是频繁的赋值操作会占用较大空间,所以在开发中多数情况下都定义为类!!!
**************************装箱拆箱*****************************************
装箱:将值类型送给引用类型 。 拆箱:将引用类型转换为值类型
int i = 123;
object num = i; //此步骤为装箱
int j = (int) num; //此步骤为拆箱 拆箱要与值类型的变量类型统一
注意:应该尽量减少不必要的装箱和拆箱。因为二者的存储方式不同,转换时性能损失较大