2014-10-22 186 views
-4

前3行代码工作正常..C#初始化对象

如何在使用object initializer时执行相同操作?

// works 
Customer MyCustomerx = new Customer(); 
MyCustomerx.Location[0].place = "New York"; 
MyCustomerx.Location[1].place = "France"; 

// problem here 
List<Customer> MyCustomer = new List<Customer> 
{ 
new Customer() { Name= "Me",Location[0].place = "New York" } 
} 
+2

这个问题没有说明的意义。 – 2014-10-22 10:28:41

+1

给我们更多的信息。不工作是不够的。 – Complexity 2014-10-22 10:29:39

+0

如果从数据库中拔出复杂性就容易多了。它就像一个人有很多电话..比如我有诺基亚,三星,你有联想......我们如何在C#中构建poco?我有点测试,并发挥C#如何工作..从PHP背景..有很多的可能性,可以做到这一点,没有错误.. – user2524126 2014-10-22 10:36:14

回答

2

在对象初始化器中没有相应的代码 - 你不能指定那样的索引器。它有点不寻常,它甚至可以直接运行...我期望必须添加到Locations属性,而不是有两个已经可用,我可以设置一个非传统命名的属性。例如,这将是成语:

Customer customer = new Customer { 
    Name = "Me", 
    Locations = { 
     new Location("New York"), 
     new Location("France") 
    } 
}; 

(我可能把名字变成一个构造函数的参数,请注意。)

然后,您可以使用一个集合初始化中,当然。

+0

谢谢..给我一些想法... :) ..我应该创建一个构造函数,而不是推入另一个函数的地方.. – user2524126 2014-10-22 10:48:34