早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C#引用类型的使用Cr2=r1;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceUseReference{classProgram{classC{publicintValue=0;

题目详情
C#引用类型的使用 C r2 = r1;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace UseReference
{
class Program
{
class C
{
public int Value = 0;
}
static void Main(string[] args)
{
int v1 = 0;
int v2 = v1;
v2 = 927;
C r1 = new C();
C r2 = r1;
r2.Value = 112;
Console.WriteLine("Value:{0},{1}", v1, v2);
Console.WriteLine("Refs:{0},{1}", r1.Value, r2.Value);
Console.ReadLine();
}
}
}
请问一下为什么r1.Value的值是112?
▼优质解答
答案和解析
C#有值类型和引用类型两种,值类型传递的时候是拷贝传递,不会因为一个值得改变而改变另外一个的值.
其实C语言的时候,就有值传递,指针传递,别名传递,这就是变相的指针传递.
而引用类型是一个指向一个的地址,你这里的C是一个对象,不是值类型,所以当C r2=r1;的时候就r2指向了r1,相当于两个是一个地址,当其中一个的值改变的时候,另外一个也会改变,在这里r2改变了,所以r1也随之改变.
这个就是对对象的引用,希望我的回答对你有帮助哦.