我有一个方法应该接受一个结构变量并返回一个bool。这很好 - 至少在语法方面,也许。
private bool equalsidcomparison(Employee newGuy)
{
foreach (Employee E in employees)
{ if (E.Name == newGuy.Name || E.phone == newGuy.phone) { return true; } return false; }
return false;
}
稍后在按钮单击方法中,我将数据传递给struct变量的字段(newGuy),然后将newGuy传递给上面的方法,我被告知newGuy是一个未分配的局部变量。< / p>
Employee newGuy;
newGuy.id = nextIDnumber;
newGuy.Name = txtbName.Text;
newGuy.department = (string)comboDept.SelectedItem;
newGuy.title = comboJob.SelectedText;
newGuy.phone = txtbPhone.Text;
foreach (Employee E in employees)
{
if (equalsidcomparison(newGuy) == true) { };
}
我觉得这是一个简单的修复,但我是新的,并且应该是它应该是什么。我环顾四周无济于事,我不能偏离我使用的过程太远,因为它是任务的一部分。
答案 0 :(得分:1)
您需要使用运营商newGuy
初始化new
。您可以将其字段初始化与声明组合:
Employee newGuy = new Employee {
id = nextIDnumber
, Name = txtbName.Text
, department = (string)comboDept.SelectedItem
, title = comboJob.SelectedText
, phone = txtbPhone.Text
};
答案 1 :(得分:0)
您需要实例化变量的实例 - 如下所示:
Employee newGuy = new Employee();
newGuy.id = nextIDnumber;
...
你也可以把它写成&#39; var newGuy = new Employee();&#39; (取决于你问的是谁,这是更好的语法...)
你也可以创建你的对象:(注意 - 这需要你的&#39; set&#39;方法可以访问)
Employee newGuy = new Employee()
{
id = nextIDnumber,
Name = "something",
...
};
我还建议在变量名中使用一致的套管。 (id,Name,title,...)。通常,c#的标准是将PascalCase用于公开可用的方法/属性。