什么是类型(Type)
类型又称为数据类型(Data Tpye)
数据类型是指类型相同性质的值的集合,有效表达而来;数据类型配备了有关这组数据类型的操作。
是数据内存中存储的型号
小内存容纳大尺寸数据会丢失精度、发生错误
大内存容纳小尺寸数据还会导致浪费
编译语言的数据类型与数据的数据类型不完全相同
类型在C#中的作用
一个C#类型中所包含的信息
存储此类型变量所需要的内存空间大小
此类型的值可能表示的最大、最小值范围
此类型所包含的成员(如方法、变量、事件等)
此类型由何种基础类型派生而来
程序运行时,此类型的变量在分配内存的什么位置
stack简介(栈)
stack overflow:栈溢出
Heap简介(堆)
内存泄漏
C#语言的类型系统
数据类型结构
类(classes):如Windows、Form、Console、String
结构体(Structures):如Int32、Single、Double
枚举(Enumerations):如HorizontalAlignment、Visibility
接口(Interfaces)
委托(Delegates)
变量、对象与内存
变量定义
表面上来看,变量的用途是存储数据。
实际上。变量表示了存储位置,并且每一个变量都有一个类型,一决定什么样的值能存储进入变量
int X;
short s=200; //大的内存存储比较小的值可以
long l;
x=l //小的内存存储大的不可以
x=100; //赋值变量
//变量名对应变量的值内存的存储位置
变量一共7种
静态变量、实例变量(成员变量、字段)、数组元素、值参数、引用参数、输出形参、局部变量
狭义的变量
指局部变量,因为其他类型的变量都有自己的约定名称
简单来说,局部变量就是方法体(函数体)里面声明的变量
class Student
{
public static int Amount; //静态成员变量
public int Age;
public string Name; //实例变量
public double Add(double s,double m) //s、m称为值参数变量
//public ref double s; //此时s为引用参数
//public out double s; //此时s为输出参数
{
return s+m;
}
int a=4; //局部变量
}
static void Main(String []args)
{
int[] array = new int[100]; //数组元素
array[0] //数组元素的第一个
}
变量的声明
有效的修饰组合opt 类型 变量名 初始化器opt
public static int amount = 0;
变量=以变量名所对应的内存地址为起点、以其数据类型所要求的存储空间为长度的一块内存区域
值类型的变量
引用类型的变量与实例
引用类型变量与实例的关系:引用类型变量里面存储的数据是对象的内存地址
局部变量在stack上分配内存
变量的默认值
常量
拆箱与装箱
值类型和引用类型的互相转换
int a = 100;
object x;
int a = 100;
object x;
x = a;
装箱
int a = 100;
object x;
x = a;
int b = (int)x;
Console.WriteLine(b);
** 拆箱**<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=)