ZKX's LAB

在C#中引用类型变量的赋值只复制对象的引用,而不复制对象本身是什么意思 引用类型复制会不会有问题

2020-08-11知识11

是否所有引用类型都可以进行深度复制? 当然不是,这要看改类型提供这个方法没有~?object 类型的对象就没有这个功能~Java值类型和引用类型,以及复制的是什么东西 java 中的数据类型分为两大类:值类型(基本数据类型)和引用类型(复合数据类型)一,值类型分为 1,整数类型(byte,short,int,long)2,浮点类型(float,double)3,布尔类型(boolean)4,字符类型(char)二,引用值类型 除了值类型外就是引用值类型了,引用值类型有1,类类型(class)2,数组 3,接口类型(interface)关于复制的是什么?我还真不知道。值类型和引用类型的区别?写出C#的样例代码。 using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{class Person{public int Blood=10;}class Program{public static void Add(int x){x+10;Console.WriteLine(\"值类型当参数被传递并修改之后:\"+x);}public static void Add(Person person){person.Blood+10;Console.WriteLine(\"引用类型当参数被传递并修改之后:\"+person.Blood);}static void Main(string[]args){值类型变量int i=10;Console.WriteLine(\"i的原值:\"+i);Add(i);Console.WriteLine(\"但是i的值并没有因为函数的修改而修改:\"+i);引用类型变量Person person=new Person();Console.WriteLine(\"Blood的原值:\"+person.Blood);Add(person);Console.WriteLine(\"但是Blood的值因为函数的修改而修改:\"+person.Blood);值类型和引用类型的区别,就在于当函数参数传递的时候.值类型是把自己的值复制一份传递给别的函数操作.无论复制的值怎么被改变.其自身的值是不会改变的而引用类型是把自己的内存地址传递给别的函数操作.操作的就是引用类型值的本身.所以值被函数改变了.这就是传值和传址的区别Console.ReadLine();}}}

#引用类型#构造函数

随机阅读

qrcode
访问手机版