关键字

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. hdu6537 /// DP 最长不降子序列->最长公共子序列

    题目大意: 给定一个字符串 字符为0~9 求翻转某个区间后使得串中的最长不降子序列最长 因为字符范围为0~9 假设有一个 0 1 2 3 4 5 6 7 8 9 的序列 此时翻转某个区间得到形如 0 ...

  2. JQuery日记6.7 Javascript异步模型(二)

    异步模型看起来非常美,但事实上它也是有天生缺陷的.看以下代码 try { setTimeout( function(){ throw new Error( '你抓不到我的!' ); }, 100); ...

  3. 大型站点图片server架构的演进

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/dinglang_2009/article/details/31450731 在主流的Web站点中,图 ...

  4. 杭电多校第三场-H-Game

    题目描述 Again Alice and Bob is playing a game with stones. There are N piles of stones labelled from 1 ...

  5. 笔记45 Hibernate快速入门(二)

    Hibernate O/R 映射 一.多对一 一个Product对应一个Category,一个Category对应多个Product,所以Product和Category是多对一的关系.使用hiber ...

  6. Gulp执行预处理

    1. 在项目中安装 gulp-sass插件来编译Sass npm install gulp-sass --save-dev 2. 在gulpfile.js中编写 var gulp = require( ...

  7. luoguP1134 阶乘问题 [数论]

    题目描述 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001, ...

  8. lsof 详解

    lsof常用参数 lsof 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位lsof -i 列出所有网络连接lsof -i tcp 列出所有tcp连接信息lsof -i udp  ...

  9. [学习笔记] $Maximum$ $Minimum$ $identity$

    \(Maximum\) \(Minimum\) \(identity\)学习笔记 比较好玩的一个科技.具体来说就是\(max(a,b)=a+b-min(a,b)\),这个式子是比较显然的,但是这个可以 ...

  10. NX二次开发-UFUN计算两点距离UF_VEC3_distance

    NX11+VS2013 #include <uf.h> #include <uf_curve.h> #include <uf_vec.h> UF_initializ ...