我有这堂课:
public class Lockbox
{
string lockbox { get; set; }
int polling_interval { get; set; }
}
在另一个课程中,我制作了一个类型锁箱列表:
var monitor_lockboxes = new List<Lockbox>();
现在如何在列表中添加条目?我可以这样做吗?:
monitor_lockboxes.Add(...);
但它不需要2个参数。
答案 0 :(得分:5)
但它不需要2个参数。
唔不,它不会。它需要一个参数,类型为Lockbox
。
听起来你想要这样的东西:
var newBox = new Lockbox { lockbox = "foo", polling_interval = 10 };
monitor_lockboxes.Add(newBox);
你可以在一个声明中做到这一点,当然 - 为了清楚起见,我只是将它分开了。
(我还强烈建议您将您的命名更改为.NET conventions。)
答案 1 :(得分:1)
以下方法可行:
monitor_lockboxes.Add(new Lockbox { lockbox = "Foo", polling_interval = 42 } );
这使用Object Initializer语法。为此,Lockbox
上的属性必须为public
。
另一种方法是为Lockbox
提供一个带有属性值的构造函数:
public class Lockbox
{
public Lockbox(string lockbox, int pollingInterval)
{
this.lockbox = lockbox;
this.polling_interval = pollingInterval;
}
public string lockbox { get; set; }
public int polling_interval { get; set; }
}
现在您可以像这样使用它:
monitor_lockboxes.Add(new Lockbox("Foo", 42));