您的位置:首页 > 编程语言 > C#

C#中的扩展方法

2015-01-18 19:45 225 查看
有这么一个类MyData,定义如下:

class MyData
{
private double D1;
private double D2;
private double D3;

public MyData(double d1,double d2,double d3)
{
<span style="white-space:pre"> </span>D1=d1:
<span style="white-space:pre"> </span>D2=d2;
<span style="white-space:pre"> </span>D3=d3;
}

public double Sum()
{
<span style="white-space:pre"> </span> return D1+D2+D3;
}
}
如果我想在另一个类当中定义一个方法,使得MyData可以使用它,那么我可以使用扩展类。比如我在另一个类ExtendMyData中想定义一个类,来计算D1,D2,D3的平均值。具体也就是可以声明MyData md,然后使用md.Average(),而不是使用ExtendMyData的实例。如下:
sealed class MyData
{
private double D1;
private double D2;
private double D3;

public MyData(double d1,double d2,double d3)
{
<span> </span>D1=d1:
<span> </span>D2=d2;
<span> </span>D3=d3;
}

public double Sum()
{
<span> </span> return D1+D2+D3;
}
}
static class ExtendMyData
{
public static double Average(this MyData md)
{
return md.Sum()/3;
}
}

然后就可以使用md.Average()

扩展方法的重要要求如下:

声明扩展方法的类必须为static。
扩展方法本身必须声明为static。
扩展方法必须包含关键字this作为它的第一个参数类型,并在后面跟着它所扩展的类的名称。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# 扩展方法 this static