深刻C#数据类型

       再谈封装数组

    封装又称信息隐藏,指利用抽象类型把应有的数据类型及数据操做结合为一个不可分割的实体,只保存数据对外的借口,尽量的隐藏内部的细节函数

     封装=数据类型+数据操做spa

 

     值类型和引用类型blog

    值类型内存

  在Java中,int double char float short Boolean byte long都是值类型而其余的都是引用类型变量

    在C#中,除这八种类型外,枚举类(enum)和结构体都是值类型构造函数

     类,数组,借口是引用类型数据类型

     在内存角度考虑值类型和引用类型引用

   

            在内存中,开辟的变量只是在栈上开辟了一块内存地址,把值也存在了栈上 ,当另外一个变量b被此变量a赋值时,b变量会在去栈上找到a的内存地址下的值而不会去新开辟地址float

      引用类型

  

     引用类型以数组为例,若是数组a在栈上开辟了空间而且在堆上存了真实值,这个时候数组b=数组a赋值是,至关于把a的地址给了b,数组b会拿着相同的内存地址去找堆上值,结果数组a和b就是相同的值了。

    当数组b=new 数组b的时候就在栈上开辟了新的内存地址在堆上也有了相应的空间来存值,这个时候数组b=数组a赋值就不会把a的值给b数组,而数组b就用了本身的值

    结构体

   

        构造函数

       Class Player

         { 

           public Player(){}

          }

         在一个类中,一个方法的名称能够和类名相同,而且能够没有任何返回值。

         装箱和拆箱

      

            拆箱以前必须有装箱过程,没有任何的疑问!!!

      值传递和引用传递

      值传递: 值类型(不加ref)  值不会被改变   引用类型(不加ref)  值会改变

      引用传递: (不管加不加ref)值类型仍是引用类型都会被改变

相关文章
相关标签/搜索