这可能会令人困惑或混乱但我需要帮助我的程序 这是我的计划:
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];
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.");
}
}
//Search Button search a patients name and display his surname in the label if patient is found display his surname
private void button2_Click(object sender, EventArgs e)
{
int intTest = 0;
for (int x = 0; x < patientInfo.Length; x++)
{
if (textBox4.Text == patientInfo[x])
{
label6.Text =("surname");
intTest = 1;
}
}
if (intTest == 0)
{
label6.Text = ("not found");
}
}
我很抱歉,如果你可以帮助我,请提前致谢并提前致谢。
答案 0 :(得分:2)
你因为这条线而得到错误; textBox4.Text == patientInfo[x]
。这里有一些问题,但首先,textBox4.Text
是一个字符串,你试图与Patient
进行相等比较,编译器说这里没有为==
运算符定义。您可以重载==
的{{1}}运算符,但这只允许您将Patient
类型的一个实例与另一个实例进行比较,您永远无法将Patient
与Patient
进行比较一个string
,除非你将它们都转换为object
类型,在这种情况下它只会进行参考比较(不是你想要的)。
我不确定您要在Patient
使用哪个属性,但我知道您需要将textBox4.Text
与Patient
类中的一个字符串进行比较。像这样的东西会起作用; (textBox4.Text == patientInfo[x].lastName)
答案 1 :(得分:0)
将System.String
- textBox4.Text
返回的类型 - 与Patientn
实例进行比较是没有意义的。您可能需要将Text
与patientInfo[x].lastNameString
进行比较。
答案 2 :(得分:0)
你做不到
textBox4.Text == patientInfo[x]
patientInfo
包含Patience
和textBox4.Text
的实例string
。这两者之间没有可能的比较,这就是你得到错误的原因。
你可能正在尝试做这样的事情
textBox4.Text == patientInfo[x].patientidstring