什么是类型(Type)

类型又称为数据类型(Data Tpye)

数据类型是指类型相同性质的值的集合,有效表达而来;数据类型配备了有关这组数据类型的操作。
是数据内存中存储的型号
小内存容纳大尺寸数据会丢失精度、发生错误
大内存容纳小尺寸数据还会导致浪费
编译语言的数据类型与数据的数据类型不完全相同

类型在C#中的作用

一个C#类型中所包含的信息

存储此类型变量所需要的内存空间大小
此类型的值可能表示的最大、最小值范围
此类型所包含的成员(如方法、变量、事件等)
此类型由何种基础类型派生而来
程序运行时,此类型的变量在分配内存的什么位置
stack简介(栈)
stack overflow:栈溢出
Heap简介(堆)
内存泄漏

此类型所允许的操作(运算)

C#语言的类型系统

数据类型结构

image.png 类(classes):如Windows、Form、Console、String
结构体(Structures):如Int32、Single、Double
枚举(Enumerations):如HorizontalAlignment、Visibility
接口(Interfaces)
委托(Delegates)

变量、对象与内存

变量定义

表面上来看,变量的用途是存储数据。
实际上。变量表示了存储位置,并且每一个变量都有一个类型,一决定什么样的值能存储进入变量

  1. int X;
  2. short s=200; //大的内存存储比较小的值可以
  3. long l;
  4. x=l //小的内存存储大的不可以
  5. x=100; //赋值变量
  6. //变量名对应变量的值内存的存储位置

变量一共7种
静态变量、实例变量(成员变量、字段)、数组元素、值参数、引用参数、输出形参、局部变量
狭义的变量
指局部变量,因为其他类型的变量都有自己的约定名称
简单来说,局部变量就是方法体(函数体)里面声明的变量

  1. class Student
  2. {
  3. public static int Amount; //静态成员变量
  4. public int Age;
  5. public string Name; //实例变量
  6. public double Add(double s,double m) //s、m称为值参数变量
  7. //public ref double s; //此时s为引用参数
  8. //public out double s; //此时s为输出参数
  9. {
  10. return s+m;
  11. }
  12. int a=4; //局部变量
  13. }
  14. static void Main(String []args)
  15. {
  16. int[] array = new int[100]; //数组元素
  17. array[0] //数组元素的第一个
  18. }

变量的声明
有效的修饰组合opt 类型 变量名 初始化器opt

public static int amount = 0;

变量=以变量名所对应的内存地址为起点、以其数据类型所要求的存储空间为长度的一块内存区域

值类型的变量

值类型没有实例,所谓的“实例”与变量合二为一

引用类型的变量与实例

引用类型变量与实例的关系:引用类型变量里面存储的数据是对象的内存地址

局部变量在stack上分配内存

变量的默认值

本地变量无默认值;引用变量默认值为0;

常量

coust无法被在此赋值,且常量的初始化器不可被省略

拆箱与装箱

值类型和引用类型的互相转换

  1. int a = 100;
  2. object x;

1541986096863-7cae610e-16ca-46e8-b476-c3cb8619c1e8.png

  1. int a = 100;
  2. object x;
  3. x = a;

装箱
1541986150537-4e0c65e4-a03f-4cc0-9e15-1309de326e26.png

  1. int a = 100;
  2. object x;
  3. x = a;
  4. int b = (int)x;
  5. Console.WriteLine(b);
  1. ** 拆箱**<br />![1541986189842-7663ab16-ce0e-4ae5-ab6e-8be97a8f6fc4.png](https://cdn.nlark.com/yuque/0/2022/png/26207277/1645534461044-6371fe5a-eff6-493f-bc1f-55e128197818.png#clientId=u8eb6419f-bcba-4&crop=0&crop=0&crop=1&crop=1&from=drop&id=u50ab27e1&margin=%5Bobject%20Object%5D&name=1541986189842-7663ab16-ce0e-4ae5-ab6e-8be97a8f6fc4.png&originHeight=470&originWidth=750&originalType=binary&ratio=1&rotation=0&showTitle=false&size=467774&status=done&style=none&taskId=u9c648314-336d-4d93-9464-b6fcad21610&title=)