• dotNet 框架程序设计 读书笔记


    IS & AS

    obj is Employee

    obj as Employee

    checked & unchecked

    checked((byte)(b+200))

    checked
    {
       
    byte b = 100;
       b 
    = (byte) (b + 200);
       SomeMethod(
    400); // 在checked操作符或语句内调用一个方法并不会对该方法产生任何影响
    }

     值类型与引用类型

    Equal,GetHashCode,拷贝

    重写Equal方法的同时必须重写GetHashCode方法,因为Hashtable要求相等的两个对象拥有相同的HashCode;

    Obj.MemberwiseClone()是浅拷贝;

    有参属性(索引):

    public bool this[int index]
    {
        
    get{}
        
    set{}
    }

    Char

    有三种技巧允许我们进行Char和数值之间的转化:

    代码
    //直接转化,性能最好
    Char c = (Char)65;
    int i = (int)c;
    //Convert
    Char c = Convert.ToChar(65);
    int i = Convert.ToInt(c);
    //IConvertable
    Char c = ((IConvertable)65).ToChar(null);
    int i = ((IConvertable)c).ToInt(null);


    String内存驻留, Intern, IsInterned

    内存驻留:CLR在编译时会为代码中的所有字符串生成一个散列表,Key为字符串,Value为字符串在堆中的引用。

    string.Intern(str) 是把某个str加入到散列表中;

    string.IsInterned(str) 如果str存在于散列表中,返回str的引用,否则返回null。

    委托链

    Delegate d = new Delegate(M1);

    d +=new Delegate(M2);

    M2的Delegate会添加到Delegate d的头部,组成一个委托链;委托链中的每个 delegate调用的时候如果它前面还有其他委托,会被提前调用;

      

    垃圾回收:
    代龄
    根对象,找到所有可达对象,对不可达对象进行回收,压缩management heap

  • 相关阅读:
    统计创建对象个数
    动手动脑
    开学第一周心得
    放假第五周总结
    放假第四周总结
    第一周总结
    04-异常处理-动手动脑
    03-继承与多态-动手动脑
    02-类和对象-跟踪类对象创建个数
    02-类和对象-动手动脑
  • 原文地址:https://www.cnblogs.com/end/p/1952234.html
Copyright © 2020-2023  润新知