2010-11-05 40 views
0

這可能看起來像一個CS101的問題,但我設法徹底迷惑自己。我的對象將更新我認爲它將使用此方法更新的方式(C#)嗎?

//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與來自secondObject的名稱,是否正確?當你將它傳遞給Update方法時,它帶有一個對自身的引用?

回答

0

這看起來對我來說是正確的。當你到了保存()線,objectToUpdate.Name將是一樣secondObject.Name


如果是更容易閱讀邏輯,你可以改變這條線,包括「這個。」

this.Name = secondObject.Name 

讓你認識到所設置的名稱屬性是屬於一對「這個」這是同一個對象實例,該方法被調用的。代碼功能相同,但可能更容易理解?

0

是的,.NET對象的值實際上是該對象存儲的內存地址。說firstObject = secondObject不會影響在調用方法中引用的第二個對象,但是說firstObject.Name = secondObject.Name將更改Name的值。

相關問題