C# 3.0语言新特性(二)
来源:互联网 发布:阿里云ces 免登 编辑:程序博客网 时间:2024/05/22 13:54
1对象与集合初始化器
例子:
#region Object and Collections Initializers starts
public class Point
{
private int x, y;
public int X
{
get
{
return x;
}
set
{
x = value;
}
}
public int Y
{
get
{
return y;
}
set
{
y = value;
}}
}
public class Rectangle
{
Point p1 = new Point();
Point p2 = new Point();
private List<string> lisPhoneNumbers = new List<string>();
public Point P1
{
get
{
return p1;
}
}
public Point P2
{
get
{
return p2;
}
}
public List<string> PhoneNumbers
{
get
{
return lisPhoneNumbers;
}
}
}
void ObjectInitializers()
{
var r = new Rectangle
{
P1 = { X = 0, Y = 1 },
P2 = { X = 2, Y = 3 },
PhoneNumbers = {"123", "321" }
};
}
#endregion Object and Collections Initializers ends
当我们使用ObjectInitializers()方法时,
相当于
var r = new Rectangle();
r.P1 = new Point ();
r.P1.X = 0; r.P1.Y = 1;
r.P2 = new Point();
r.P2.X = 2; r.P2.Y = 3;
r.PhoneNumbers = new List<String>{"123", "321" };
要点:对象初始化器实际上利用了编译器对对象中对外可见的字段和属性进行按序赋值
集合初始化器会对初始化器中的元素进行按序调用ICollection<T>.Add(T).
该技术也是编译时技术
2 匿名方法
允许以下的声明:
var p1 = new {Name=”Lawnmower”,Price = 495.00};
var p2 = new {Name=”Shovel”,Price=26.95};
p1 = p2;
可以使用new关键字调用匿名初始化器创建一个匿名类型的对象。
匿名类型直接继承于system.Object
匿名类型的成员是编译器根据初始化器推断类的。
- C# 3.0语言新特性(二)
- C# 3.0语言新特性(一)
- C# 3.5 语言新特性(二)
- C# 3.0新语言特性
- C#3.0语言新特性
- C# 3.0语言规范 (C# 3.0新特性)
- C# 3.0语言新特性(语言规范)
- C#语言新特性
- c#语言新特性
- c# 3.0 语言的新特性(三)
- c# 3.0 语言的新特性(四)
- C# 3.0 新语言特性和改进
- C# 3.0新语言特性和改进
- C#3.0新特性(二)- 初始值设定项
- C#3.5语言新特性(二)-隐含类型局部变量
- C# 3.0语言新特性(语言规范):7 查询表达式
- C#3.0新特性
- C# 3.0 新特性
- C# 3.0语言新特性(一)
- SQL Server存储过程命名标准
- 域名系统【DNS】
- 更改Windows收藏夹路径三法
- SQL Server 身份验证模式[转]
- C# 3.0语言新特性(二)
- 利用CEGUI+Lua实现灵活的游戏UI框架
- Poperties Editor 插件------自动解决ApplicationResources.properties中汉字乱码问题
- 计算机书籍必读
- 我还是锋。。。
- matlab和vc的接混合问题(一)
- 使用HAVING with CASE进行特定选择
- mysqld_multi单机启动多个mysql
- DNS注册申请实验