在C#中向方法发送多个参数?

时间:2017-11-23 09:25:21

标签: c# parameters

向方法发送多个参数?

所以,我是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;
}

1 个答案:

答案 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]);