我有以下代码,我创建一个对象,并通过一系列的窗体传递给用户控件。我在这个例子中错过了什么参考类型?
public class MyObject
{
public List<AnObject> Objects {get; set;}
}
形式1:
private void MyObject _myObject = new MyObject{Objects = new List<AnObject>()};
...
Form2 form2 = new Form2(ref _myObject);
form2.Show();
表格2:
public Form2(ref MyObject myObject)
{
UserControl1 myControl = new UserControl1();
myControl.Objects = myObjects.Objects
}
的UserControl1
public List<AnObject> Objects {get; set;}
...
Objects.Add(new myObject());
当我添加新myObject的()中的UserControl1对象,它不在Form1上不更新我的原始列表。我通过引用传递myObject。我能想到的唯一事情就是以某种方式拆箱我的值是当我将AnObject的列表分配给FormControl 2到UserControl1时。我究竟做错了什么?
您还没有显示足够的代码来告诉我们发生了什么。请提供一个简短但完整的程序 - 理想情况下是一个控制台应用程序,因为我认为不需要在此处涉及用户界面。正如亨克所说,你甚至不需要`ref`在这里。 – 2010-12-01 21:03:32