关键字

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. CSS:Stacking Context

    通常情况下,HTML页面可以被认为是二维的,因为文本,图像和其他元素被排列在页面上而不重叠.在这种情况下,只有一个渲染进程,所有元素都知道其他元素所占用的空间.z-index属性可让你在渲染内容时调整 ...

  2. pyJWT

    现在用JWT 加密太火了,怎么能不跟上潮流?否则销售都不好意思出去吹牛逼! PyJWT是一个Python库,用来编码/解码JWT(JSON Web Token)的 1.定义:根据维基百科的定义,JSO ...

  3. CyberArk

    CyberArk PIM 套件由5个部分组成: · CyberArk EPV (Enterprise Password Vault)– 企业密码保险库 基于CyberArk 专利的Vault技术,为企 ...

  4. js查询字符串是否包含指定字符的函数indexOf

    今天用到了js的函数indexOf来查看字符串中是否包含指定的字符,最开始没注意看,就拿来用了,结果用的时候才发现,IndexOf的返回值原来是字符在字符串中的index,返回值有0.1等等,如果没有 ...

  5. 50. Set接口和Set的实现类HashSet

    集合分类:-------------------| Collection 单列集合的根接口   ---------------| List 如果实现了List接口的集合类,具备的特点是:有序,可重复- ...

  6. 32. Random类

    1.Random class Random implements java.io.Serializable 下面是一个简单验证码的代码: public static void main(String[ ...

  7. javascript--判断语句

    1.if...else.. if(m===1){ console.log('1') }else{ console.log('X') } 一般if 里面采用类型全等的运算符. 2.switch var ...

  8. PHP PDO 事务与自动提交

    现在通过 PDO 连接上了,在开始进行查询前,必须先理解 PDO 是如何管理事务的. 事务支持四大特性(ACID): 原子性(Atomicity) 一致性(Consistency) 隔离性(Isola ...

  9. 「题解」:07.16NOIP模拟T2:通讯

    问题 B: 通讯 时间限制: 1 Sec  内存限制: 256 MB 题面 题目描述 “这一切都是命运石之门的选择.” 试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短 信,并由此 ...

  10. dfs版容斥原理+剪枝——bzoj1853

    学了一种爆搜版+剪枝的容斥方法,即类似数位dp时按位进行容斥,同时需要在搜索过程中进行剪枝 /* 容斥原理,先在打出的表里筛掉所有倍数,然后用容斥原理+1个的倍数-2个lcm的倍数+3个lcm的倍数. ...