1

我有这堂课:

public class Lockbox
{
    string lockbox { get; set; }
    int polling_interval { get; set; }
}

在另一堂课中,我制作了一个类型密码箱列表:

var monitor_lockboxes = new List<Lockbox>();

现在如何将条目添加到列表中?我可以这样做吗?:

monitor_lockboxes.Add(...);

但它不需要 2 个参数。

4

2 回答 2

5

但它不需要 2 个参数。

好吧,不,它不会。它需要一个类型的参数Lockbox

听起来你想要这样的东西:

var newBox = new Lockbox { lockbox = "foo", polling_interval = 10 };
monitor_lockboxes.Add(newBox);

当然,您可以在单个语句中完成 - 为了清楚起见,我只是将其分开。

(我还强烈建议您更改命名以遵循.NET 约定。)

于 2013-01-16T15:20:01.320 回答
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));
于 2013-01-16T15:20:33.603 回答