C# 如何在不使用匿名对象的情况下初始化列表初始值设定项中的对象?
我有一个列表,我用一个初始值设定项列表初始化了它,在这个列表中我想创建一个新对象,我不想那个对象是匿名的。有人能帮我吗? 我的代码如下所示:C# 如何在不使用匿名对象的情况下初始化列表初始值设定项中的对象?,c#,list,C#,List,我有一个列表,我用一个初始值设定项列表初始化了它,在这个列表中我想创建一个新对象,我不想那个对象是匿名的。有人能帮我吗? 我的代码如下所示: Product product=new Product(){ OrderProductAttributes = new List<OrderProductAttribute> { //initialize an object(I do not want it to be anonymous) }
Product product=new Product(){
OrderProductAttributes = new List<OrderProductAttribute>
{
//initialize an object(I do not want it to be anonymous)
}
}
产品产品=新产品(){
OrderProductAttributes=新列表
{
//初始化对象(我不希望它是匿名的)
}
}
不确定这就是您所说的匿名,但您肯定可以在初始化期间进行具体的实例化
Product product=new Product(){
OrderProductAttributes = new List<OrderProductAttribute>()
{
//initialize an object(I do not want it to be anonymous)
new OrderProductAttributes() { Property1 = 10, Property2 = false... },
new OrderProductAttributes() { Property1 = 20 Property2 = false... },
}};
产品产品=新产品(){
OrderProductAttributes=新列表()
{
//初始化对象(我不希望它是匿名的)
新的OrderProductAttributes(){Property1=10,Property2=false…},
new OrderProductAttributes(){Property1=20 Property2=false…},
}};
您还可以命名变量并添加它们:
OrderProductAttributes test = new ...;
OrderProdcutAttributes test2 = new ...;
Product product=new Product(){
OrderProductAttributes = new List<OrderProductAttribute>()
{
//initialize an object(I do not want it to be anonymous)
test,
test2,
}};
OrderProductAttributes测试=新建。。。;
OrderProdcutAttributes test2=新。。。;
产品=新产品(){
OrderProductAttributes=新列表()
{
//初始化对象(我不希望它是匿名的)
测试,
测试2,
}};
注意此代码需要在实例化方法(比如构造函数)中,并且不会在成员声明中工作,除非
test
和test2
以何种方式标记为static
“非匿名”?除了集合初始值设定项之外,您将无法使用它(甚至无法定义变量)。我尝试了第二种方法,但出现了以下错误:错误14字段初始值设定项无法引用非静态字段、方法或属性“ProductMapping.Business.Controller.productAttribute”@Shary抱歉,我假设这是在函数中。是的,要执行第二种方法,您需要在实例方法中执行初始化,或者将变量标记为静态
。在这种情况下,您通常只需在构造函数中进行初始化。我进行了初始化,但仍然会出现此错误。@Shary如果出现此错误,您将作为字段初始值设定项进行初始化,这意味着您引用的所有内容都必须是静态的。你能更好地描述一下你实际做了什么/改变了什么吗?@Shary是的,因为你初始化的东西必须是静态的。将test
标记为static,它将工作。同样,这不是推荐的方法(如果您知道自己在做什么,您应该只使用static
),但它会编译。