传递对象引用

本文关键字:对象引用 | 更新日期: 2023-09-27 18:07:02

我有一个对象,它包含它保持最新的其他对象。如果我将其中一个子对象传递给另一个类的构造函数这是否会作为指针保存与被更新的对象相同?

在下面的代码存根中,我使用EventDetails对象。我不需要在ResultsTreeViewEvent中修改这个。

EventDetails eventDetails = raceDay.GetEvent(meeting, race);
ResultsTreeViewEvent newEvent = new ResultsTreeViewEvent(meet.name, eventDetails, ref treeView, fullPage, true);

public class ResultsTreeViewEvent
{
    public EventDetails race = null;
    public ResultsTreeViewEvent(String aMeetingName, EventDetails aRace, ref TreeView aTreeView, Boolean aFullPage, Boolean aShowMultiLegResults)
    {
        race = aRace;
    }

传递对象引用

如果我将这些子对象中的一个传递给另一个类的构造函数,它是否作为指针保存,因此与被更新的对象相同?

嗯,它被保存为引用 -如果对象通过任何引用更新,这些更改确实会通过其他引用可见,是的。您确实不需要使用ref。(不清楚你想用aTreeView做什么,但你几乎肯定不想或不需要ref.)

引用和指针在某些方面非常相似,但又不相同。(c# 在不安全的代码中确实有指针,但你很少使用它们。)

参见我关于c#中引用类型、值类型和参数传递的文章。