早教吧作业答案频道 -->其他-->
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?
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也随之改变.
这个就是对对象的引用,希望我的回答对你有帮助哦.
其实C语言的时候,就有值传递,指针传递,别名传递,这就是变相的指针传递.
而引用类型是一个指向一个的地址,你这里的C是一个对象,不是值类型,所以当C r2=r1;的时候就r2指向了r1,相当于两个是一个地址,当其中一个的值改变的时候,另外一个也会改变,在这里r2改变了,所以r1也随之改变.
这个就是对对象的引用,希望我的回答对你有帮助哦.
看了C#引用类型的使用Cr2=r1...的网友还看了以下:
未处理的“System.Data.OleDb.OleDbException”类型的异常出现在sys 2020-05-17 …
asp.net3.5中有set,map集合吗?asp.net3.5中有list集合但我写:Sets 2020-08-04 …
C#引用类型的使用Cr2=r1;usingSystem;usingSystem.Collection 2020-11-01 …
关于最简单的C#常识!谁可以告诉我一下下面一段C#代码每行代码分别代表什么?分别是什么意思?越详细越 2020-11-01 …
C#上下文不存在“优量中差”我用的ABCD依然不存在。。。usingSystem;usingSyst 2020-11-01 …
C#的小问题usingSystem;usingSystem.Collections.Generic; 2020-11-01 …
我是一个C#的初学者,usingSystem;usingSystem.IO;\x05\x05\x05 2020-11-15 …