我有一个对象,其中包含其保持最新的其他对象。 如果我将其中一个子对象传递给另一个类的构造函数,它是否作为指针保存,并且与正在更新的对象完全相同?
在下面的代码存根中,我正在使用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;
}
答案 0 :(得分:6)
如果我将其中一个子对象传递给另一个类的构造函数,它是否作为指针保存,与正在更新的对象完全相同?
好吧,它保存为引用 - 如果对象是通过任何引用更新的,那么这些更改确实可以通过其他引用看到,是的。您不需要使用ref
。 (目前尚不清楚你要对aTreeView
做什么,但你几乎肯定不想要或不需要参考。)
引用和指针在某些方面非常相似,但是aren't the same。 (C#确实在不安全的代码中有指针,但你很少使用它们。)
有关详细信息,请参阅reference and value types和parameter passing in C#上的文章。