我的对象是否会以我认为的方式使用此方法(C#)进行更新?

我的对象是否会以我认为的方式使用此方法(C#)进行更新?,c#,C#,这可能看起来像是一个CS101问题,但我已经完全弄糊涂了 //this is inside a service class ObjectToUpdate objectToUpdate = objectrepository.Get(objectToUpdate.Id); SecondObject secondObject = secondObjectRepository.Get(secondObject.Id); objectToUpdate.Update(seco

这可能看起来像是一个CS101问题,但我已经完全弄糊涂了

    //this is inside a service class
    ObjectToUpdate objectToUpdate = objectrepository.Get(objectToUpdate.Id);
    SecondObject secondObject = secondObjectRepository.Get(secondObject.Id);
    objectToUpdate.Update(secondObject);
    objectRepository.Save(objectToUpdate);

    //the object itself
    public class ObjectToUpdate {
    public int Id { get; set; }
    public string Name { get; set; }

    public void Update(SecondObject secondObject) {
    Name = secondObject.Name
    }
}

当我到达“保存”行时,它将正确地用第二个对象的名称更新objectToUpdate,对吗?当您将其传递给Update方法时,它本身带有一个引用?

是的,类是通过引用传递的,因此您将传递对同一对象的引用。本教程为理解这一概念提供了很好的参考:

是的,类是通过引用传递的,因此您将传递对同一对象的引用。本教程为理解这个概念提供了一个很好的参考:

对我来说是正确的。到达Save()行时,
objectToUpdate.Name
将与
secondObject.Name


如果逻辑上更容易阅读,您可以将此行更改为包含“this”


因此,您会意识到正在设置的Name属性是属于“this”的属性,而“this”是调用该方法的同一个对象实例。代码在功能上是相同的,但可能更容易理解?

这在我看来是正确的。到达Save()行时,
objectToUpdate.Name
将与
secondObject.Name


如果逻辑上更容易阅读,您可以将此行更改为包含“this”


因此,您会意识到正在设置的Name属性是属于“this”的属性,而“this”是调用该方法的同一个对象实例。代码功能相同,但可能更容易理解?

是的,.NET对象的值实际上是存储该对象的内存地址。说
firstObject=secondObject
不会影响调用方法中引用的secondObject,但说
firstObject.Name=secondObject.Name
会更改
Name

的值是的,.NET对象的值实际上是存储该对象的内存地址。说
firstObject=secondObject
不会影响调用方法中引用的secondObject,但说
firstObject.Name=secondObject.Name
会更改
Name
的值

this.Name = secondObject.Name