传递对象引用

时间:2013-04-02 19:57:52

标签: c#

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

在下面的代码存根中,我正在使用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;
    }

1 个答案:

答案 0 :(得分:6)

  

如果我将其中一个子对象传递给另一个类的构造函数,它是否作为指针保存,与正在更新的对象完全相同?

好吧,它保存为引用 - 如果对象是通过任何引用更新的,那么这些更改确实可以通过其他引用看到,是的。您需要使用ref。 (目前尚不清楚你要对aTreeView做什么,但你几乎肯定不想要或不需要参考。)

引用和指针在某些方面非常相似,但是aren't the same。 (C#确实在不安全的代码中有指针,但你很少使用它们。)

有关详细信息,请参阅reference and value typesparameter passing in C#上的文章。