深入C#数据类型

2021-07-17 06:19

阅读:400

 

  值类型:所有的值类型的引用都存储在栈中

      值类型赋值原理:在栈上复制的真实值

  引用类型:  

      堆上存储的真实对象本身真实对象的属性

      (1)堆上开空间存数据
      (2)堆上的内存地址存储到栈空间中
      (3)从栈指向堆上的真实对象

 

   对值类型,不同的变量会分配不同的储存空间,并且储存空间中储存的是该变量的值。

        赋值操作传递的是变量的值,改变一个变量不会影响另一个变量的值

   对引用类型,赋值是把原对象的引用传给另一个引用。对数组而言。

         当一个数组引用赋值给另一个数组引用后,这两个引用指向同一个数组,也就是指向同一块储存空间

     结构:

      结构的定义

        语法:

          访问修饰符 struct 结构名{//结构体}

          @结构中可以有字段,也可以有方法

                                  @定义时,结构中的字段不能被赋初始值

          @在不去new 结构类时,不能有属性

          @声明结构的对象后,必须给结构所有成员赋初值。

    装箱和拆箱

       值类型转换为引用类型成为装箱,反之成为拆箱

      技术分享图片

        引用方式参数传递

        (基本数据类型,如,整形,浮点型,字符型,bool行及结构属于值类型;数组,接口和类属于引用类型)

        使用值方式(不用ref修饰)传递值类型参数时,参数在方法中的修改不会保留

        使用值方式(不用ref修饰)传递引用类型参数时,参数在方法中的修改会保留

          使用引用方式(用ref修饰)传递值类型或引用类型参数时,参数在方法中的修改都会保留

 

  


评论


亲,登录后才可以留言!