第八章-类和继承-拓展方法

71 阅读1分钟

拓展方法所在的类必须是静态类,拓展方法本身必须是静态方法,方法的第一个参数必须要使用关键字this;

`namespace 拓展方法
{
    public sealed class MyData
    {
        private int D1;
        private int D2;
        private int D3;
        public MyData(int d1, int d2, int d3)
        {
            D1 = d1;
            D2 = d2;
            D3 = d3;
        }
        public double sum()
        {
            return D1 + D2 + D3;
        }
    }
    public static class ExtendMyData
    {
        public static double Average(this MyData md)//必须要用this修饰,才能在后面直接使用后实例访问被拓展的方法。
        {
            return md.sum() / 3;
        }
    }
    internal class Program
    {
        static void Main(string[] args)
        {
            MyData data=new MyData(1,2,3);
            double average=data.Average();
            Console.WriteLine(average);
            Console.ReadLine();
        }
    }
}`