zoukankan      html  css  js  c++  java
  • net基础知识点(一)

    1、索引器
    public string this[index]{
    get{
    // todo:
    }
    set{
    //todo
    }
    }
    2、密封类和静态类以及扩展方法
    密封类:关键字seal 不能有子类
    静态方法:关键字static 不能new,无法创建子类 只能声明static成员
    扩展方法:在静态类中,写一个静态方法,对于参数所属类型扩展此方法
    实例:
    public static person
    {
    //红色表示即给定string一个扩展方法
    public static bool Isman(this string name){
    if(Hasjj(name))
    {
    return true;
    }else
    {
    return false;
    }
    }
    }

    3、深拷贝和浅拷贝
    其实就是一种现象,主要是看内存中的对象,比较简单,自行理解.
    浅拷贝:同用内存
    深拷贝:不同用内存

    4、结构体
    结构体和类很像,但是不能继承
    struct person
    {
    public string name{get;set;}
    public float age{get;set;}
    }

    类似于深拷贝,克隆之后,对原有的进行修改,不会影响当前的信息。

    5、CTS、CLS和CLR
    CTS(common type system)通用数据类型
    CLS (common language specifiction) 通用语言规范
    CLR (common language runtime) 公共语言运行时,提供垃圾回收GC(garbage collection)、JIT(即时编译器)
    值类型是放在栈内存中,引用类型放在堆内存中,栈内存会在方法结束时自动释放,堆内存需要GC来回收。

    6、拆箱和装箱
    其他类型到object类型,装箱
    object到其他类型,拆箱(拆箱时需要强制转换,只能用装箱时的类型强转)

    7、等于
    基本的object.referenceEquals(p1,p2),是判断是否是同个对象
    对于常见的类型,重写了object的==

    8、字符串缓冲池
    如果在缓冲池中有相同的对象,直接重用,而不是重新创建,当然这是对于内容一致,且长度不变的

    9、ref和out
    普通参数(值类型传递拷贝,引用类型传递引用),在函数内部不能修改外部变量的指向,如果需要修改,则需要使用ret和out
    ref 在传入函数时需要提前进行初始化,out不需要在函数外进行初始化,或者说初始化也没有用。
    out适用于多个返回值的情形

  • 相关阅读:
    verilog中timescale
    [shell] if语句用法
    makefile编写
    linux下压缩解压缩命令
    python获取文件所在目录
    gvim 技巧
    vcs编译verilog/sysverilog并执行
    verilog中signed的使用
    [leetcode]_String to Integer (atoi)
    [leetcode]_Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/sailing92/p/13621612.html
Copyright © 2011-2022 走看看