• 数据类型
    1. 值类型

      bool 布尔值 True 或 False False
      byte 8 位无符号整数 0 到 255 0
      char 16 位 Unicode 字符 U +0000 到 U +ffff '\0'
      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

            public class A
        {
        public void Method() { }
        public int _A;
        public int AA
        {
        get { return ; }
        }
        }
        public class B:A
        {
        public new void Method() { }
        public new int _A;
        public new int AA
        {
        get { return ; }
        }
        }
        /*全部替换了*/
      2. 重写虚拟的基类成员——virtual&override
         public class A
        {
        public virtual void Method() { } public virtual int AA
        {
        get { return ; }
        }
        }
        public class B:A
        {
        public override void Method() { } public override int AA
        {
        get { return ; }
        }
        }

c#学习笔记01——引用&类的更多相关文章

  1. C++ GUI Qt4学习笔记01

    C++ GUI Qt4学习笔记01   qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ...

  2. SaToken学习笔记-01

    SaToken学习笔记-01 SaToken版本为1.18 如果有排版方面的错误,请查看:传送门 springboot集成 根据官网步骤maven导入依赖 <dependency> < ...

  3. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  4. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

  5. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  6. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  7. Redis:学习笔记-01

    Redis:学习笔记-01 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 1. Redis入门 2.1 ...

  8. Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

    Caliburn.Micro学习笔记目录 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详 ...

  9. PHP 学习笔记 01

    例子: 为什么要学PHP 主观原因: 前段时间在学校处理了毕业的一些事情,回到上海后开始了找工作的旅程.意向工作是WPF开发或者ASP.NET 作为后端的WEB开发. 陆陆续续一直在面试,其中有一家公 ...

随机推荐

  1. Pip,pywin32,whl文件下载网址,mayavi安装包,PyQt5安装,PyMuPDF安装等注意事项

    (1)pip安装的包不一定是用户想要的位置,此时可以用 -t 选项来指定位置. 例如目标位置是/usr/local/lib/python2.7/site-packages/ ,要安装xlrd 这个包 ...

  2. M: Mysterious Conch 字符串哈希

    Problem Description小明有一个神奇的海螺,你对海螺说一段字符串,海螺就会返回一个单词,有字符串里面的所有字符组成如告诉海螺“lloeh”海螺则会告诉你“hello”如果有多个单词对应 ...

  3. Spark-大数据计算引擎

    Spark简介: Spark是一个快速且通用的集群计算平台,可以处理大数据量时候,比如几T到几P量级时候只需要几秒钟到几分钟,相对于hadoop几分钟到几小时速度是很快的,通用是指Spark的使用场景 ...

  4. bzoj 4247挂饰

    背包????不会... #include<bits/stdc++.h> #define INF 0x7fffffff #define LL long long #define N 1000 ...

  5. 十五、CI框架之自动加载数据库

    一.在config的autoload.php文件中,如果写入以下代码,那么在控制器中无需再次加载数据库了,相当于全局自动加载数据库了 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码 ...

  6. 201809-2 买菜 Java

    思路: 顺序读入,例如:小H装车的时间段为[1,3],小W装车的时间段为[2,4],重叠部分为[2,3],记在数组times[2]中.最后输出时判断数组times中值大于1的(其实就是2),即为重叠部 ...

  7. JS的BOM对象

    BOM对象 (一)简介:BOM对象,即浏览器对象模型: 通过javascript的对象,操作和浏览器相关的操作 B:  Browser,浏览器 O: Object,对象 M: Model,模型 (1) ...

  8. 算法设计和分析(Prim算法构建最小生成树)

    问题: 给定无向图G(N,M)表明图G有N个顶点,M条边,通过Prim算法构造一个最小生成树 分析: 算法流程: 构造好的最小生成树就是step6 运行代码: #include<cstdio&g ...

  9. Invalid bean definition with name 'dataSource' defined in class path resource [applicationContext.xml]

    启动tomcat,访问一个web项目失败,查看日志,发现异常信息: 18-Jul-2019 15:22:16.822 严重 [main] org.apache.catalina.core.Standa ...

  10. 初识MyBatis-Generator

    详细请见: http://www.mybatis.org/generator/quickstart.html 使用mybatis-generator-core-x.x.x.jar加上配置文件来生成 1 ...