向方法发送多个参数?
所以,我是C#和Visual Studio的新手,我正在“边做边学”并提出问题。我正在编写一个小型Windows窗体应用程序。
我正在尝试发送另一个表单值。
我有这个类的对象列表:
class Cars
{
public string Name { get; private set; }
public string Color { get; private set; }
public Cars(string name, string color)
{
this.Name = name;
this.Color = color;
}
}
因此,在我的Form1中,我可以使用以下方法访问这些对象:
List<Cars> cars = new List<Cars>();
此汽车列表以其他方式加载。
所以现在,我正在尝试发送另一张表格(编辑表格)一辆车。 我想这样做:
var form2 = new frmEdit(cars[0]);
然后编译器抱怨我需要将我的课程设置为公开......糟糕的OOP。那么我可以这样做:
var form2 = new frmEdit(cars[0].Name,cars[0].Color);
精细!但如果这是另一种语言,如Javascript或PHP,我会发送一个对象。所以我在C#中读过“Anonymus Types”,所以我认为这可能是一个很好的解决方案。
但接收表格并不知道......所以如果我这样使用它会抱怨:
car.Name;
那我该怎么办?我试图使用至少“一些”好的OOP,所以我认为这是一个糟糕的解决方案,使汽车类公开。编辑表单不需要知道Cars类。
感谢您的任何建议!
[编辑] 编辑表单构造函数:
public frmEdit(string name, string color)
{
textName.Text = name;
textColor.Text = color;
}
答案 0 :(得分:1)
将您的frmEdit更改为:
private Cars myCar; // add this var.
public frmEdit(Cars car)
{
this.myCar = car; // now you have your car stored if you need
textName.Text = car.Name;
textColor.Text = car.Color;
}
然后:
var form2 = new frmEdit(cars[0]);