C#进阶学习(中高级)

静态方法:

1、特点

1)生命周期——一旦创建--应用结束 才会结束

2)全局可用

3)效率高

2、用处

用户登录信息、系统配置信息、系统设置、SQLhelper

注意:静态的东西创建多了占用内存多,非必要情况不要创建静态对象

3、调用

静态方法不能直接调用非静态方法,需先初始化所在类。

class TestStaticMethod
{
    public stirng Test
    {
        return "我是非静态放法";
    }
}

调用
|
|
|

TestStaticMethod test = new TestStaticMethod();
test.Test();

构造方法:

1、用处

初始化对象,或者初始化一些数据

2、特点

默认有一个无参构造方法,可以多个并重载

析构方法:

1、作用

释放对象

2、谁在使用

GC垃圾回收器在调用

虚方法(virtual)

1、作用

允许子类/派生类进行重写,实现不一样的功能

2、特点

好维护

抽象方法:

1、定义

一定写在抽象类中,不能new,不带方法体

2、使用场合

强制性一定要实现

抽象类和接口的区别:

抽象类接口
单继承多继承
里可以写普通方法、虚方法等只能写规范,不写实现
常用在不会经常改动的地方经常修改的地方

 扩展方法(ExtendMethod)

1)在密封类中的对象、属性或者方法(扩展密封类)

2)扩展接口

3)在linq链式编程

泛型

最大的优点是做到了通用

List<string> strList = new List<string>(){"a","b","d"};
List<object> obList = new List<object>(){};//object类型做数据转换的时候有拆箱装箱操作,有性能损耗,建议少使用。

泛型Dictionary<K,V> 键值对(泛型字典)
Dictionary<int,string> dic = new Dictionary<int,string>();

实例化对象:

MyGeneric<int> myGeneric new MyGeneric(1111);

1、泛型原理:

interface IStudent<T>//泛型接口
{
    
}

interface IStudent//普通接口
{

}

2、类型约束:

【1】new()约束——表示T类型只接收一个无参数的构造函数new T()

【2】struct值类型约束

【3】class引用类型约束

【4】自定义类型约束

3、值类型和引用类型

值类型:结构类型struct\int、double、bool、枚举类型

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

new()约束一定要写在最后

4、泛型总结

1)泛型的用处:让泛型类、泛型方法、泛型接口、泛型委托更通用

2)次要:约束用的不多

3)了解:协变\逆变

exe\dll主要区别:exe文件有入口

metadata(元数据:用来描述exe\dll文件的一个数据清单)

5、协变和逆变

是针对接口和泛型委托来说的

协变关键字是out,只能是返回值

逆变关键字是in,只能是参数

default关键字值类型时默认返回0,引用类型时默认返回值为null。

IListOut<People> listOut = new IListOut<People>();

IListOut<People> listOut = new IListOut<Teacher>();//协变
IListIn<Teacher> listIn = new IListIn<Teacher>();

IListIn<Teacher> listIn = new IListIn<People>();//逆变

in修饰,逆变后,T只能作为参数,不能作返回值。

反射(Reflection)

用来操作获取元数据的

【1】更新程序时(更新自己的DLL)

【2】使用别人的DLL文件(这种可以读取别人私有的东西)

1、什么是反射?

操作metadata的一个类库(可以把反射当成一个小工具用来读取或获取元数据的)

(类、方法、特性、属性字段)

2、哪些用到了反射?

asp.net MVC---ORM---LOC---AOP

几乎所有的框架都用到了反射

为什么要通过反射间接去操作,因为1、需要动态2、读取私有的对象

通过反射加载DLL文件

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值