zoukankan      html  css  js  c++  java
  • U Must Know The .Net --7

    关键字

    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);

        }  

  • 相关阅读:
    数论分块与整除相
    P3254——DP&&入门
    P3384——树链剖分&&模板
    树链剖分模板
    P4145——线段树点修改&&模板题
    P1198最大数——线段树点修改&&模板题
    线段树(四)——两个标记(add和set)
    epoll 知识总结
    C++中的mutable关键字
    [LeetCode] Max Points on a Line
  • 原文地址:https://www.cnblogs.com/swobble/p/8626714.html
Copyright © 2011-2022 走看看