• C#扩展方法


    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();
            }
        }
    }
  • 相关阅读:
    AtCoder Beginner Contest 157
    AtCoder Beginner Contest 158 BCD
    1046 A^B Mod C
    AtCoder Beginner Contest 150
    Aizu
    【建图】【思维】拓扑排序建图+序列自动机——swerc Gym
    【思维】单调栈——cf1366E
    【数学】gcd数论——cf1366D
    【思维】cf 1365 DEF
    【思维】构造——ICPC NEAU B
  • 原文地址:https://www.cnblogs.com/sulong/p/4793845.html
Copyright © 2020-2023  润新知