zoukankan      html  css  js  c++  java
  • c#学习笔记01——引用&类

    • 数据类型
      1. 值类型
        bool 布尔值 True 或 False False
        byte 8 位无符号整数 0 到 255 0
        char 16 位 Unicode 字符 U +0000 到 U +ffff ''
        decimal 128 位精确的十进制值,28-29 有效位数 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M
        double 64 位双精度浮点型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D
        float 32 位单精度浮点型 -3.4 x 1038 到 + 3.4 x 1038 0.0F
        int 32 位有符号整数类型 -2,147,483,648 到 2,147,483,647 0
        long 64 位有符号整数类型 -923,372,036,854,775,808 到 9,223,372,036,854,775,807 0L
        sbyte 8 位有符号整数类型 -128 到 127 0
        short 16 位有符号整数类型 -32,768 到 32,767 0
        uint 32 位无符号整数类型 0 到 4,294,967,295 0
        ulong 64 位无符号整数类型 0 到 18,446,744,073,709,551,615 0
        ushort 16 位无符号整数类型 0 到 65,535 0
      2. 引用类型
        • object类
        • 装箱&拆箱
      3. 指针类型
        • 注意和c++的区别 *关键字只能紧跟在类型后
    • 方法
      1. 访问修饰符:static,virtual,extern,override,new
      2. 声明方法
      3. 通过形参修改实参:rec,out//rec需要初始化,out不需要 类比c++中&
    • 托管

    托管代码 (managed code) :由公共语言运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。 Unmanaged Code - 非托管代码 :在公共语言运行库环境的外部,由操作系统直接执行的代码。非托管代码必须提供自己的垃圾回收、类型检查、安全支持等服务;它与托管代码不同,后者从公共语言运行库中获得这些服务。非托管代码的英文名是Unmanaged Code ,它是在公共语言运行库环境的外部,由操作系统直接执行的代码。

      • 普通类
        1. 字段
        2. 属性:get/set
        3. 方法
        4. 构造函数:
        5. 析构函数/垃圾回收:没有修饰符 无法主动调用 无法继承或重载
        6. this关键字/当前实例的引用
        7. 类成员的可访问性:pubic,private,protected,internal,protected internal
    pubic 成员公共访问,没有任何限制
    private 成员私有访问,是允许访问的最低级别,私有成员只有在声明他们的类中才可被访问。
    protected 类成员声明为受保护的,只有使用该类作为基类的派生类才能访问该成员
    internal 成员访问是内部的,只有在同一程序集的文件中,内部类型的成员才是可访问的
    protected internal 只有在同一程序集的派生类才能访问这个成员
      • 类的嵌套:内部类可直接访问外部类的静态成员;通过外部类的对象访问非静态成员
      • 抽象类
      • 静态类 仅包含静态成员;不能被实例化,不能包含构造函数(已经作为实例存在;密封的
      • 静态类成员:只与类有关与实例无关;通过类名调用
        1. 静态构造函数:用于初始化任何静态数据,或用于执行仅需执行一次的特殊操作
          1. 静态构造函数既没有访问修饰符,也没有参数
          2. 在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类
          3. 无法直接调用静态构造函数
      • 继承:派生类隐式获得基类的除构造函数和析构函数以外的所有成员
        • 规则:
          1. 派生类应当是对基类的扩展。派生类可以添加新的成员,但不能去除已经继承的成员。
          2. 派生类只能从一个类继承 要实现多重继承 可以通过接口来实现
          3. 继承可以传递
          4. 构造函数和析构函数不能被继承
          5. 派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员,但这并不意味者删除了被覆盖的成员
          6. 类可以定义虚方法、虚属性一己虚索引指示器,它的派生类能够重载这些成员,从而可以展现出多态性。
      • 多态性:
        1. 使用新的派生类成员替换基类成员——关键字new
           1    public class A
           2         {
           3             public void Method() { }
           4             public int _A;
           5             public int AA
           6             {
           7                 get { return 0; }
           8             }
           9         }
          10         public class B:A
          11         {
          12             public new void Method() { }
          13             public new int _A;
          14             public new int AA
          15             {
          16                 get { return 0; }
          17             }
          18         }
          19 /*全部替换了*/
        2. 重写虚拟的基类成员——virtual&override
           1 public class A
           2         {
           3             public virtual void Method() { }
           4   
           5             public virtual int AA
           6             {
           7                 get { return 0; }
           8             }
           9         }
          10         public class B:A
          11         {
          12             public override void Method() { }
          13             
          14             public override int AA
          15             {
          16                 get { return 0; }
          17             }
          18         }
  • 相关阅读:
    FPGA之verilog流水灯小程序
    FPGA之Verilog点灯小程序
    FPGA学习入门
    机试题 (用 hash 实现部门管理系统 只记得大概的内容,简洁版) -- 上一篇的优化
    机试题 (用 hash 实现部门管理系统 只记得大概的内容,简洁版) --> 这里改成文件管理系统
    双向循环链表 (只需要一个 head 节点), 从头尾部 删除 插入 数据都比较方便
    使用 head + tail 两个头尾节点实现双向链表 (队列太多会占用内存), 数据的添加删除比较方便
    线程学习
    堆排序演示 ( 这个 堆排函数将适合所有的堆排, 只需要改一下比较函数)
    windows10 下访问 virtualbox 虚拟机的linux15.10/16.04 系统 及 用 putty 访问虚拟机的配置
  • 原文地址:https://www.cnblogs.com/yuelien/p/6623049.html
Copyright © 2011-2022 走看看