拓展方法所在的类必须是静态类,拓展方法本身必须是静态方法,方法的第一个参数必须要使用关键字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();
}
}
}`