標籤:
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#擴充方法