Welcome

首页 / 软件开发 / C# / C#3.0语言新特性之匿名变量

C#3.0语言新特性之匿名变量2010-12-19 博客园 马伟20.2.1 引入匿名变量

在很多情况下,我们需要一种能够临时将一批具有一定关联的数据存放起来 的对象;或者在某些情况下,我们对仅一个对象的“形状”(如属性的名字和类 型等)比较感兴趣。例如Book类,当它和其他商品放在一起进行查询时,我们可 能仅对其名称和价格感兴趣,并且希望将这两种属性放在另外一个单独的临时对 象中以备今后使用。这时,我们关注的仅仅是这个临时对象具有Name和Price的 属性感兴趣,至于它究竟是什么类型就无关紧要了。然而,为了使这样一个对象 得以存在,我们不得不为这个无关紧要的类型写上一大堆“样本代码”,无非就 是定义一个如BookAsGood的类,其中无非也就是形如m_name和m_price的私有域 和名为Name与Price的公共可读写方法。代码如下所示:

public class BookAsGood

{

// 定义一组私有成员变量

private string m_name;

private double m_price;

// 为成员变量设置属性

public string Name

{

get

{

return this.m_name;

}

set

{

this.m_name = value;

}

}

public string Price

{

get

{

return this.m_price;

}

set

{

this.m_price = value;

}

}

}

如果像这样封装的成员太多,代码量还是很可怕的,并且维护的工作量也相 当大。针对于这些问题,在C# 3.0中,我们有了一个解决这种问题的捷径,称之 为匿名类型,它是C#匿名方法语法的扩展。