C# C:添加到SomeClass类型的列表中

C# C:添加到SomeClass类型的列表中,c#,list,C#,List,我有这门课: public class Lockbox { string lockbox { get; set; } int polling_interval { get; set; } } 在另一节课上,我列出了锁盒类型: var monitor_lockboxes = new List<Lockbox>(); 但它不需要两个参数 但它不需要两个参数 不,不会的。它接受一个参数,类型为Lockbox 听起来你想要的是: var newBox = new Lock

我有这门课:

public class Lockbox
{
    string lockbox { get; set; }
    int polling_interval { get; set; }
}
在另一节课上,我列出了锁盒类型:

var monitor_lockboxes = new List<Lockbox>();
但它不需要两个参数

但它不需要两个参数

不,不会的。它接受一个参数,类型为Lockbox

听起来你想要的是:

var newBox = new Lockbox { lockbox = "foo", polling_interval = 10 };
monitor_lockboxes.Add(newBox);
当然,你可以用一句话来表达——为了清楚起见,我只把它分开

我也强烈建议你改变你的名字,以遵循

但它不需要两个参数

不,不会的。它接受一个参数,类型为Lockbox

听起来你想要的是:

var newBox = new Lockbox { lockbox = "foo", polling_interval = 10 };
monitor_lockboxes.Add(newBox);
当然,你可以用一句话来表达——为了清楚起见,我只把它分开


我还强烈建议您将您的命名改为如下。

以下方法可行:

monitor_lockboxes.Add(new Lockbox { lockbox = "Foo", polling_interval = 42 } );
这使用了语法中的。要使其工作,锁盒上的属性必须是公共的

另一种方法是为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));

以下将起作用:

monitor_lockboxes.Add(new Lockbox { lockbox = "Foo", polling_interval = 42 } );
这使用了语法中的。要使其工作,锁盒上的属性必须是公共的

另一种方法是为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));