代表: 我有两个类,比如
public class Login
{
public String Username;
public String Pwd;
public address address1;
}
Address.cs
public class address
{
public String location;
public string phonenumber;
}
我可以使用address2和address3作为类Address的实例在运行时使用for循环来增加类Login的成员。可以这样做..我有一个像这样使用的api,而不是使用地址作为列表/数组。如果我感到困惑,请告诉我..提前谢谢。
答案 0 :(得分:2)
我可以使用address2和address3增加类Login的成员作为类地址的实例在运行时使用for循环。
没有。如果您需要多个地址,则应将类更改为具有集合的地址而不是单个字段。您无法在执行时向对象添加字段。我建议使用List<Address>
。
此外,我强烈建议使用属性而不是公共字段,并遵循.NET naming conventions。
您公开集合的具体方式取决于您,但我要么通过readonly属性公开List<Address>
,要么公开AddAddress
和{{的方法1}}。我还试图使RemoveAddress
本身不可变,构造函数采用它的所有方面,例如。
Address
答案 1 :(得分:1)
您应该创建一个address
类数组:
public class Login
{
public String Username;
public String Pwd;
public address[] address;
}
然后使用它们:
Login l = new Login();
l.address = new address[3];
l.address[0].location = ...
l.address[2].phonenumber = ...
l.address[1].location = ...
l.address[2].location = ...
...etc...
答案 2 :(得分:0)
尝试使用Dictionary,例如
class Something
{
public string Username;
public string Password;
public Dictionary<string,address> Address;
public Something(string username, string password)
{
this.Username = username;
this.Password = password;
this.Address = new Dictionary<string, address>();
}
}
像这样添加新变量:
void example()
{
var Something x = new Something("username", "password");
x.Address.Add("Address1",new address());
x.Address.Add("Address2",new address());
x.Address.Add("Address3",new address());
x.Address.Add("Address4",new address());
//next address what you want
}