关键字

1 new

  创建对象/调用构造函数

  隐藏基类成员

  new()约束,表明泛型类声明中的任何参数都必须有公共无参构造函数

  new 实现多态

1.1  

  new class:分配内存,调用构造函数实例化

  new struct:调用构造函数实例化

  new int:初始化值为0

(值类型与引用类型new 的时候,值类型直接初始化其值,引用类型还是给他分配内存)

2 base/this

  base:

    在构造函数子类访问父类公有 受保护属性

    调用基类方法(在子类中已被重写),多层父类向上一层一层找知道找到为止

    构造函数中:base  先调用父类构造函数

  this :

    只能出现在对象内部,对象外部访问不到

    指示属性/参数名称相似时的属性成员

      this.Name(属性)=Name(参数)

    传递当前实例

      ReFresh(this)

    声明索引器

      pubic string this[int para]

      {

        get{return array[para] ;}

      }

2.1 类实例化顺序

   实例化基类-->实例化父类-->数理化父类-->实例化子类

3 using  

    创建namespace/class别名

      using ATC=Xmals.Device.ATC

    using== dispose  if Class:IDisposable  Dispose用于清理对象的非托管资源,而不是释放对象的内存,托管对象的内存永远由GC控制

4 null

    引用对象的默认值(表示这个对象声明但未初始化,引用是无效的)

    Nullable<T>==T?  Nullable<T>本质上是个预定义的结构体

    ??

        a=b??c  如果b为null,则a=c,否则a=b

        a=b??c??d??e??f,选择bcdef中不为空的数

5 null Object

    将if(user!=null){}  ---->if(NullUser.IsNull)  避免抛出空引用异常

    利用扩展方法实现null object

6 Lock

  string特殊,整个应用程序只有一个实例,不用lock

  多线程访问同一资源会出现问题,有以下解决方式

    Lock  

    监视器

    同步事件和等待句柄

    Mutex对象

  lock将语句块标记,保证代码执行不被其他线程终端,其他线程只有等待执行解锁之后才可以访问该语句

    object obj=new object();

    lock(object)

    {

      //xx

    }

  其原理是用了监视器,lock等同于

    System.Threading.Monitor.Enter(obj);//TryEnter

    try

    {

    //xx

    }

    finally

    {

    System.Threading.Monitor.Exit(obj);

    }  

随机推荐

  1. python--reflect

    一.反射 python 中用字符串的方式操作对象的相关属性,python 中一切皆对象,都可以使用反射 用eval 有安全隐患,用 反射就很安全 1.反射对象中的属性和方法 class A: a_cl ...

  2. dnslog小技巧

    一.dnslog利用场景 主要针对无回显的情况. Sql-Blind RCE SSRF RFI(Remote File Inclusion) 二.原理 将dnslog平台中的特有字段payload带入 ...

  3. Django项目 BBS论坛

    BBS论坛 一.项目表分析 二.自定义form组件 三.注册功能 四.BBS论坛 登录功能

  4. 读书笔记---《Docker 技术入门与实践》---其一

    一.镜像1.1.搜索 搜索所有nginx镜像 $ docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Officia ...

  5. 泛型(Generic)类的使用原因和使用方式

    我们每个苹果都套个盒子,给每本书都套个盒子,但是苹果盒子和书盒子是不同的, 这样下去如果有更多的东西需要套盒子,1000种产品有1000种相应的盒子,造成类型极度膨胀非常难以维护. class Pro ...

  6. PHP ftp_rawlist() 函数

    定义和用法 ftp_rawlist() 函数返回 FTP 服务器上指定目录中文件的详细列表. 语法 ftp_rawlist(ftp_connection,dir,recursive) 参数 描述 ft ...

  7. SpringBoot_Redis配置

    Spring Boot – redis 1.添加依赖 <!-- 引入 spring-boot-starter-redis 当前最新版本--> <dependency> < ...

  8. jQuery 引入多个库文件冲突

    index.html <head><meta http-equiv="Content-Type" content="text/html; charset ...

  9. Unity 如何修改 particle system 的 start color 属性

    代码如下: ParticleSystem ps = GetComponent<ParticleSystem>(); var main = ps.main; var color = Colo ...

  10. Flink 1.6.0 Windows操作

    原文连接 https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/operators/windows.html W ...