将结构更改为类?

时间:2014-03-20 12:12:56

标签: c# arrays class struct try-catch

我想将我的结构患者更改为一个班级,但是当我执行我的程序时不起作用(没有错误)我想用结构患者代替患者,因为您可以看到我的按钮单击使用结构患者我想为一堂课改变它并且仍在工作。 visual studio 10我的节目:

public partial class Form1 : Form
{
    int itemCountInteger;
public struct Patient
{
    public string patientidstring;
    public string firstNameString;
    public string lastNameString;


}

public Form1()
{
    InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{


}


public class Patientn
{
    private int patientId;
    public string firstName;
    private string lastName;

    public Patientn()
    {
        patientId = 0;
        firstName = "";
        lastName = "";
    }

    public Patientn(int idValue, string firstNameVal, string lastNameVal)
    {
        patientId = idValue;
        firstName = firstNameVal;
        lastName = lastNameVal;
    }

}

//Array
Patient[] patientInfo = new Patient[10];
//this method is used to add items to array and display listbox
private void button1_Click(object sender, EventArgs e)
{
    try
    {
        foreach (Patient patientinfoIndex in patientInfo)

        patientInfo[itemCountInteger].patientidstring = textBox1.Text;
        patientInfo[itemCountInteger].firstNameString = textBox2.Text;
        patientInfo[itemCountInteger].lastNameString = textBox3.Text;

        string names = patientInfo[itemCountInteger].firstNameString + " " +                                                 patientInfo[itemCountInteger].lastNameString;
        listBox1.Items.Add(names);
        itemCountInteger++;
        listBox1.SelectedItem = names;
    }
    catch
    {
        MessageBox.Show("Contacts are limited to 20. Please delete some contacts prior to adding more.");
    }

}

1 个答案:

答案 0 :(得分:2)

您应该显式创建类实例。在你的情况下

// It's quite enough since Patient is a struct
Patient[] patientInfo = new Patient[10];

如果Patientn class ,则应为

// As it was...
Patientn[] patientInfo = new Patientn[10];

// You should add this since Patientn is a class
for (int i = 0; i < patientInfo.Length; ++i)
  patientInfo[i] = new Patientn();