zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
  • 相关阅读:
    初探并行线程的三种写法
    Revit2017二次开发-打印机配置
    test错误记录
    自行车出租系统错误集2
    错误记录-spring+mybatis
    Windows(64位IIS)未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
    sqlDeveloper连接oracle
    Apriori算法-java
    Apriori算法-位运算-C语言
    Apriori算法-数组-C语言
  • 原文地址:https://www.cnblogs.com/sulong/p/4793845.html
Copyright © 2011-2022 走看看