码迷,mamicode.com
首页 > Windows程序 > 详细

C#扩展方法

时间:2015-09-09 11:19:38      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 * 扩展方法允许编写和声明它的类之外的类关联的方法
 * 1、扩展方法必须声明为static
 * 2、扩展方法声明所在的类也必须声明为static
 * 3、扩展方法必须包含关键字this 作为他的第一个参数类型,并在后面跟着它扩展的类的名称
*/
namespace ExtendMethod
{
    sealed class MyData
    {
        private double D1, D2, D3;
        public MyData(double d1, double d2, double d3)
        {
            D1 = d1; D2 = d2; D3 = d3;
        }
        public double Sum()
        {
            return D1 + D2 + D3;
        }
    }
    static class ExtendMyData
    {
        public static double Average(this MyData md)//扩展类MyData的方法
        { 
            return md.Sum()/3;
        }
    }
    static class ExtendMyData1
    {
        public static double Average( MyData md)//非扩展类MyData的方法
        {
            return md.Sum() / 3;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            MyData md = new MyData(3, 4, 5);
            Console.WriteLine("Sum: {0}",md.Sum());
            Console.WriteLine("扩展方法md.Avrage: {0}", md.Average());
            Console.WriteLine("非扩展方法ExtendMyData1.Average:{0}",ExtendMyData1.Average(md));
            Console.ReadKey();
        }
    }
}

C#扩展方法

标签:

原文地址:http://www.cnblogs.com/sulong/p/4793845.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!