S2第二章

值类型:

值类型源于SystemValueTye家族,每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型数据所在的内存区域称之为栈。知道在代码中修改它,就会在它的内存区域内保存这个值,值类型主要包括基本类型和枚举类型等。

static void Main (string [] args)
{
      int heightZhang = 170;
      int heightLi=heightZhang;
      Console.WriteLine("去年:张浩身高"+heightZhang+",李明的身高是:”+heightLi);        
      heightLi=180;
    Console.WriteLine("去年:张浩身高"+heightZhang+",李明的身高是:”+heightLi);        
}

程序结果为:

  第一遍:170  170

  第二遍:180  180

小结:对值类型,不同的变量会分配不同的存储空间,并且存储空间中存储的是该变量的值,赋值操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。

引用类型:引用类型源于System.Object家族,在C#中引用类型主要包括数组,类和接口等。

  对引用类型,赋值是吧原对象的引用传递给另一个引用。对数组而言,当一个数组引用赋值给另一个数组引用后,这两个引用指向同一块存储空间。

  数组复制可以利用循环实现。对于两个数组array1 和array2(array2的长度不小于array1的长度),将数组array1中的元素的值复制到array2中,可以采取以下形式:

  for(int i = 0;i < array1.length; i++)

  {

    array2[i] = array1[i]; //将数组array1中元素的值复制到数组array2中

  }         

  结构:

    结构的定义:

      语法:访问修饰符  struct  结构名

          {

            //结构体

          }

      特点:结构中可以有字段,也可以有方法

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

  结构使用时,可以不用new,直接定义结构的队形即可。

  声明结构的对象后,必须给结构的成员赋初始值

  因为每当声明结构变量时,就会存储一个结构的新副本,既系统要开辟一块新的存储空间,因此结构用的越多所消耗的存储空间也越多。

  当对象需要用较少的字段来表示时,就可以选用结构来实现

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

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

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

原文地址:https://www.cnblogs.com/wk7799666/p/8145890.html