日期:2014-05-17  浏览次数:20883 次

利用扩展方法求一个平均值的问题
//创建一个类
    class MyDate
    {
        //声明私有字段成员
        private double d1;
        private double d2;
        private double d3;
        //定义一个有参构造函数
        public MyDate(double a, double b, double c)
        {
            d1 = a;
            d2 = b;
            d3 = c;
        }
        //声明一个方法用于计算数据之和
        public double Sum()
        {
            return d1 + d2 + d3;
        }

        //创建一个静态类
        static class ExtendMyDate
        { 
        //声明一个静态方法并实例化MyDate类
            public static double Average(this MyDate md)
            {
                return (md.Sum() / 3);
            }
        }

    }
     class Program
    {
        static void Main(string[] args)
        {
            //创建派生类对象实例并重载
            MyDate md = new MyDate(3, 4, 5);
            Console.WriteLine("Average:{0}", ExtendMyDate.Average(md));
            Console.ReadKey();
        }
    }
}
  这道题就是想利用扩展方法求一个平均值,但是我照着书上的例子把代码敲进去以后,为什么错误列表中老是显示:上下文中不存在名称“ExtendMyDate”呢?    还有就是问什么要把这个扩展方法以及此方法所在的类定义为静态的呢?

------解决方案--------------------
ExtendMyDate这个静态类及其静态方法放到外面一层即可。
第二个问题请看:http://blog.163.com/xuanmingzhiyou@yeah/blog/static/14247767620127294428684/