C#学习1

  1. 值类型

    1. 简单类型:int    float   等

    2. 结构体

    3. 枚举类型

    4. 存储在栈中,自动释放,效率较高

    5. 不能派生,不支持多态

    6. 适合做存储数据的载体

  2. 引用类型

    1. 定义的类
    2. string类型
    3. object类
    4. 数组
    5. 存储在堆中,需要手动释放
    6. 可以派生,支持多态
    7. 适合定义应用程序的行为
    8. 对象池技术
  3. 装箱和拆箱

    1. 装箱——值类型转换为引用类型
    2. 拆箱——引用类型转换为值类型
  4. 泛型

    1.  泛型T struct 约束传入的参数为值类型,而class约束为引用类型
  5. 委托

    1. 委托能够存储具有相同参数的方法,存储的是方法
    2. 我的理解,委托就是一个秘书(声明、初始化),他掌握了所有的方法(得定义哈,根据需求,定义相同参数的方法),我要干什么,我直接找我的秘书,秘书就会根据我的需求,调用对应的方法。比如我要去北京,他知道去北京的方法有:飞机、动车、汽车、骑行等,我告诉他我坐飞机过去,那么他就会(注册)飞机这个方法,然后我用他给的方法去就行了(调用)
    3. 常见的委托:
      1. delegate
        1. 声明 public delegate void DelegateTest();
        2. 初始化 public static DelegateTest dt;
        3. 注册事件 dt+=methodA;
        4. 调用委托 dt();
      2. Action事件
        1. 实例化 public static Action<string> _action();
        2. 注册 _action+= methodA;
        3. 调用 _action?.Invoke();
        4. 区别:不能有返回值
      3. Func事件
        1. 实例化,必须有返回值 public Func<string,string,int> _func1;
        2. 注册 _func1+=MethodC;
        3. 调用 var res= _func1?.Invoke("12","23");
        4. 区别:必须有返回值
  6. 抽象类和接口

    1. 功能对比
接口        抽象类
定义功能的抽象,一种行为规范,如吃、喝、飞行等是对事物共性的描述,比如人、动物
区别子类必须实现所有声名的方法子类必须实现所有抽象方法,普通方法可以不实现
可以多继承        只能单继承
不能包含成员变量和构造函数可包含成员变量和构造函数
默认public修饰        可以由其他修饰符修饰
包含:属性、索引器、事件、方法包含:抽象方法和普通方法及其他类的共性
共同点都可以被继承
都不能被直接实例化
都包含方法的声明
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值