0%

【C#】方法中的值类型和引用类型

值类型:内存中存储的是值,如int、double等 引用类型:内存中存储的是内存地址,如string、int[]等

现有Child类,中存在年龄字段Age=4 传入引用类型:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static void Growth(Child child)//构造引用类型形参child
{
child.Age++;
}```
传入值类型:
```csharp
static void Growth(int age)//构造值类型形参age
{
age++
}```
现调用之
```csharp
Child xiaoMing=new Child;
Growth(xiaoMing.Age);
Console.WriteLine(xiaoMing.Age);
Growth(xiaoMing);
Console.WriteLine(xiaoMing.Age);

运行结果:传入字段(值类型)中输出为4,但传入对象(引用类型)中输出为5。 按引用传参,用方法修改形参,实参往往也会被修改。 按值传参,用方法修改形参,实参往往不会被修改。