当前位置: 首页 > 编程语言 > C# > 正文

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#匿名方法语法的扩展。