В С# я знаю, что по умолчанию любые параметры, переданные в функцию, будут копироваться, то есть внутри функции есть локальная копия параметра. Но как насчет того, когда объект передается как параметр в другой класс?
Будет ли передан следующий сценарий по ссылке или по значению:
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
? Или две переменные указывали бы на другой экземпляр объекта?