C#对象变量未正确返回

时间:2017-05-24 03:22:29

标签: c# list oop object

我有一个名为Machine的{​​{1}}个对象的简单列表。我向它添加了2个新loadedMachines个对象,第二个参数是Machine属性。

machineName

出于某些原因,我的foreach循环正在输出"正在添加的机器是:"并且loadedMachines.Add(new Machine("0", "My cool Yaris", "Toyota")); loadedMachines.Add(new Machine("1", "My sporty car", "Ferrari")); foreach (Machine m in loadedMachines) { Console.WriteLine("Machine being added is: " + m.machineName); } 似乎没有与我的机器对象连接。

这是什么原因?这是我的班级定义:

m.machineName

2 个答案:

答案 0 :(得分:2)

在构造函数中,您需要从输入参数中分配属性,如下所示:

public Machine(string id, string machineName, string machineType)
{
    Id = id;
    this.machineName = machineName;
    this.machineType = machineType;
}

作为旁注,您通常希望为参数使用与属性不同的名称。 Microsoft建议的命名标准使用大写的属性名称,因此代替public string machineName { set; get; },您将拥有public string MachineName { set; get; }

如果这样做,构造函数不需要在属性前加this

答案 1 :(得分:1)

您也可以使用属性初始值设定项而不是构造函数。像这样:

loadedMachines.Add(new Machine() {Id = "0", machineName = "My cool Yaris", machineType = "Toyota"});

当使用动态构造的对象(如实体)时,这种语法很常见,因为许多框架不支持在动态创建时使用参数调用构造函数。