# 值类型和引用类型

值类型: 整形、浮点型、字符、布尔、日期、枚举、结构

引用类型:字符串、数组、类、接口、委托

# 接口

# 显示接口

显示接口需要用接口名.方法名,并且没有访问修饰符

注意: Object is Class //判断一个对象是否属于某个类型

# 结构(struct)

  • 结构是一个值类型,所有的值类型归根到底都是一个struct;

  • 值类型数据保存在内存的(stack,栈区),引用类型数据保存在内存的(heep,堆区);

  • 结构中可以有属性(传统属性,不能是自动属性),变量,构造函数,不能定义没有参数的构造函数;

结构和类的对比

  1. 结构不能定义无参的构造函数

  2. 结构对象不能用null赋值,类可以用null赋值

  3. 结构没有继承,类可以继承

  4. 结构没有析构函数

  5. 结构不能是抽象的

  6. 结构的字段不能在定义时初始化,可以在构造函数中初始化

#

# 类的九个成员(字段,构造函数,属性,方法,运算符,索引器,事件,内部类)

# 运算符

运算符重载:对指定的运算符赋予新的功能,必须是公开的(public),和静态的(static)

# 索引器

索引器:一种特殊的属性,它可以把对象当做数组来使用,索引器也有数据类型

# 迭代器

# 泛型

烦心约束

  • where T:struct 表示T必须为值类型

  • where T:class 表示K必须为引用类型

  • where T:new() 表示T必须定义public无参构造函数

  • where T:K 表示K必须是T的父类

  • where T:Interface 表示T必须实现Interface接口

Last Updated: 11/11/2020, 11:10:23 AM