深入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 布局名{ //布局体}
布局的界说有以下特点--