我试图创建一个Computer对象来保存存储在列表中的数据,当我尝试查看没有输出数据的任何数据时...
我创建的对象是这样的:
class Computer
{
string companyName;
string locationName;
string serverName;
string deviceName;
string lastOnline;
public Computer(string companyName, string locationName, string serverName,
string deviceName, string lastOnline)
{
this.companyName = companyName;
this.locationName = locationName;
this.serverName = serverName;
this.deviceName = deviceName;
this.lastOnline = lastOnline;
}
public string CompanyName { get; set; }
public string LocationName { get; set; }
public string ServerName { get; set; }
public string DeviceName { get; set; }
public string LastOnline { get; set; }
}
我将列表初始化为:
List<Computer> computerList = new List<Computer>();
对于测试,我在列表中添加了五个项目:
computerList.Add(new Computer("Hello", "World", "Test", "Machine", "2-12-13"));
computerList.Add(new Computer("Hello", "World", "Test", "Machine", "2-12-13"));
computerList.Add(new Computer("Hello", "World", "Test", "Machine", "2-12-13"));
computerList.Add(new Computer("Hello", "World", "Test", "Machine", "2-12-13"));
computerList.Add(new Computer("Hello", "World", "Test", "Machine", "2-12-13"));
并输出我使用的项目:
foreach (var author in computerList)
{
Console.WriteLine("Test : {0}", author.LastOnline);
}
任何人都可以看到为什么我没有输出除了:
测试:
测试:
测试:
测试:
测试:
答案 0 :(得分:2)
您正在设置私有变量,因此公共属性仍具有默认值。
只需修改构造函数即可设置公共属性:
public Computer(string companyName, string locationName, string serverName, string deviceName, string lastOnline)
{
this.CompanyName = companyName;
this.LocationName = locationName;
this.ServerName = serverName;
this.DeviceName = deviceName;
this.LastOnline = lastOnline;
}
答案 1 :(得分:1)
您的属性设置不正确,如评论中所述。尝试这两个中的一个并删除您拥有的属性和访问方法。
1:
public string CompanyName { get; set; }
或强>
2:
private string _companyName;
public string CompanyName
{
get { return _companyName; }
set { _companyName = value; }
}
修改强>
或者如其他答案中所述,修复构造函数以指向属性而不是局部变量。你应该删除你的局部变量,以免混淆。