将参数传递给C#中的函数

时间:2013-08-20 16:13:49

标签: c# function parameter-passing

我有一个小程序。它包括一个列表框和几个文本框。列表框中的元素很少,并且根据所选索引,它会将相应的值输出到文本框中。

代码示例:http://notepad.cc/share/AGh5zLNjfJ

我想使用函数将值打印到文本框中,而不是在切换情况下反复输入它们。

这样的事情:

switch(personList.SelectedIndex)
{
    case 0:
        output(person1);
        break;
    case 1;
        output(person2);
        break;
}

我无法传递person对象并使用我创建的函数访问其属性。 SOS。

3 个答案:

答案 0 :(得分:1)

不是按所选索引切换,而是将人员列表作为数据源分配给列表框。选择的索引更改时 - 显示文本框中所选项目的数据:

// that's just creating list of People with NBuilder
var people = Builder<Person>.CreateListOfSize(5).Build().ToList();
personList.DisplayMember = "fname"; // set name of property to be displayed
personList.DataSource = people;

然后从列表中选择人员:

private void personList_SelectedIndexChanged(object sender, EventArgs e)
{
    Person person = (Person)personList.SelectedItem;
    output(person);
}

请记住,在C#中,我们使用PascalNaming作为方法和属性。

答案 1 :(得分:0)

你的输出函数是否与此类似?

public void output(Person p)
{
    idBox.Text = p.id;
    nameBox.Text = p.name;
    lNameBox.Text = p.lName;
}

您可以按以下方式获取所选项目(如果您已将列表框限定为人员列表作为数据源)

Person p = (Person)listBox1.SelectedItem;

答案 2 :(得分:0)

从你的代码中我猜你需要一个功能。你可以这样做

private void Output(Person p)
{
     idBox.Text = p.id;
     fnameBox.Text = p.name;
     lNameBox.Text = p.lName;
}

并像打电话一样打电话。