传递的是引用地址

时间:2021-09-14 06:35:21

深入C#数据类型

传递的是引用地址

--差别类型的参数通报使用值通报,在要领中对参数的变动在挪用后不能保存。使用ref方法通报,可以保存对参数值的变动。 ---值方法参数通报和引用方法通报使用值方法(不用ref修饰)通报值类型参数时,参数在要领中的改削不会保存。使用值方法(不用ref修饰)引用类型参数时,参数在要领中的改削会保存。使用引用方法(不用ref修饰)通报值类型和引用类型参数时,参数在要领中的改削城市保存。


数据类型按存储方法可分为两类:值类型(栈)和引类型(堆)
值类型:差此外变量会分配差此外存储空间
存储空间存储的是该变量的值
转变一个变量值不会影响另一个变量值
引用类型:赋值是把原东西引用通报给另一个引用
两个引用指向同一块内存空间
布局的特点
1值类型

2具有较快数据提取速度(布局中可以有字段也可以有要领)
当东西需要较少字段暗示时,可以选用布局
布局是值类型,数据提取速度快

但是频繁的赋值操纵会占有较大的空间,在开发中大都情况下界说为类
值类型和引用类型之间的转换
           装箱
值类型 ------> 引用类型
      <------
       拆箱
在实际开发中应该减少不须要的装箱和拆箱
因为二者的存储方法差别,转换时性能损掉较大
不加ref通报参数,值通报,通报的是副本,不会转变原值
加ref把值类型按引用通报,通报的是引用地点,会转变原值
使用值通报,在要领中对参数值得变动在挪用后不能保存;使用ref方法通报,可以将对参数值变动保存

值类型和引用类型.C#常用数据类型          

java                                      C#整形        

int                                        int浮点型      

float           float双精度行

double          double字符串        

Strinng                      string布尔类       

boolean          bool枚举类       

enum           enum

--值类型源于System.ValueType家族,每个值类型的东西都有一个独立的内存区域用于生存本身的值,值类型数据地址的内存区域称为栈(Stack)。只要在代码中改削它,就会在它的内存区域生存这个值。小结对值类型,差此外变量会分配差此外存储空间,并且存储空间中的存储的是转变量的值。赋值操纵通报值的是变量的值,转变一个变量的值不会影响另一个变量的值。--应用类型源于System.Object家族在C#中引用类型主要包孕数值,类的接口等。

示例-- classprogram{staticvoidMain(string[] args){5int[] infozhang =newint[] {170,60};//张浩的身高和体重信息 int[] infoli=infozhang;//数值引用赋值7 Console.WritLine("去年--张浩的身高{0},体重{1}",infozhong[0],infozhong[1]); Console.WritLine("去年--李明的身高{0},体重{1}",infoli[0],infoli[1]); infoli[0]=180; infoli[1]=70; Console.WritLine("本年--张浩的身高{0},体重{1}",infozhong[0],infozhong[1]); Console.WritLine("本年--李明的身高{0},体重{1}",infoli[0],infoli[1]);13Console.ReadLine();} }


 

传递的是引用地址

数组复制可以操作循环实现,对付两个数组arry1和arry2(arry2的长度不小于arry1的长度)将数组arry1中元素的值复制到arry2中。

--细分值类型和引用类型值类型

--根基数据类型:int 长度型:long 浮点型: float double char bool枚举类:enum布局类:struct引用类型--类:基类:System.Object  字符串:string  自界说类:class接口:interface数组:int [] ,string[]

 ---布局界说:

访谒修饰符 struct 布局名{   //布局体}

布局的界说有以下特点--