值类型和引用类型的区别?写出C#的样例代码。
发布网友
发布时间:2022-04-24 18:09
我来回答
共1个回答
热心网友
时间:2022-04-24 07:29
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();
}
}
}