传递:当你将一个引用类型的值复制给另一个变量时,实际上是复制了一个指向对象的指针,而不是对象本身。这意味着改变其中一个变量不会影响到另一个。代码举例
时间: 2024-10-19 22:13:07 浏览: 10
当我们在.NET中进行引用类型的传递时,例如:
```csharp
class MyClass {
public int Value { get; set; }
}
void Main() {
MyClass obj1 = new MyClass { Value = 10 };
MyClass obj2 = obj1;
// 修改obj1的值
obj1.Value = 20;
// 输出两个对象的值
Console.WriteLine($"obj1.Value: {obj1.Value}"); // 输出:20
Console.WriteLine($"obj2.Value: {obj2.Value}"); // 输出:20
// 这里实际上只复制了对MyClass实例的引用,并不是副本
}
```
在这个例子中,当我们把`obj1`赋值给`obj2`时,实际上做了值的拷贝,也就是复制了一个指向`obj1`实例在堆上的指针。所以,修改`obj1`的`Value`会直接影响到`obj2`,因为它们指向的是同一个对象。这就是引用传递的特点。
阅读全文