在 C# 中,我知道默认情况下,传递给函数的任何参数都是通过副本传递的,也就是说,在函数内部,存在参数的本地副本。但是,当一个对象作为参数传递给另一个类时呢?
像下面这样的场景是通过引用还是通过值传递:
class MyClass {
private Object localObj;
public void SetObject(Object obj) {
localObj = obj;
}
}
void Main() {
Object someTestObj = new Object();
someTestObj.name = "My Name";
MyClass cls = New MyClass();
cls.SetObject(someTesetObj);
}
在这种情况下,类变量是否具有与驱动程序类中创建localObj
的相同的副本?或者这两个变量是否指向不同的对象实例?someTestObj
Main