【文件属性】:
文件名称:节中定义-大彩串口屏各组态控件详细介绍
文件大小:4.46MB
文件格式:PDF
更新时间:2024-06-28 03:33:31
C#5.0 PDF C#学习
表达式,以避免与成员初始值设定项产生歧义。non-assignment-expression 产生式是在第 7.18 节中定义
的。
下面是包括集合初始值设定项的对象创建表达式的一个示例:
List digits = new List { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
集合初始值设定项应用到的集合对象必须是实现 System.Collections.IEnumerable 的类型,否则会
出现编译时错误。对于按顺序指定的每个元素,集合初始值设定项将调用目标对象的 Add 方法(将元素
初始值设定项的表达式列表用作参数列表),从而对每个调用都应用正常重载决策。因此对于每个元素
初始值设定项,集合对象必须包含适用的 Add 方法。
下面的类表示一个联系人,包括姓名和电话号码列表:
public class Contact
{
string name;
List phoneNumbers = new List();
public string Name { get { return name; } set { name = value; } }
public List PhoneNumbers { get { return phoneNumbers; } }
}
可以使用如下语句创建和初始化 List:
var contacts = new List {
new Contact {
Name = "Chris Smith",
PhoneNumbers = { "206-555-0101", "425-882-8080" }
},
new Contact {
Name = "Bob Harris",
PhoneNumbers = { "650-555-0199" }
}
};
此语句与下面的语句等效
var __clist = new List();
Contact __c1 = new Contact();
__c1.Name = "Chris Smith";
__c1.PhoneNumbers.Add("206-555-0101");
__c1.PhoneNumbers.Add("425-882-8080");
__clist.Add(__c1);
Contact __c2 = new Contact();
__c2.Name = "Bob Harris";
__c2.PhoneNumbers.Add("650-555-0199");
__clist.Add(__c2);
var contacts = __clist;
其中 __clist、__c1 和 __c2 是以其他方式不可见且不可访问的临时变量。
7.6.10.4 数组创建表达式
array-creation-expression 用于创建 array-type 的新实例。