假设又有一个第三方的类,如下:
public sealed class Person
{
public string Name { get; set; }
public string Phone { get; set; }
public string getPhone()
{
return Phone;
}
}
现在有一个需求,需要给Person增加一个公共的调用方法,输出当前类的Name,由于Person类是密封类,所以不能被继承,这时候就可以使用扩展方法
public static class PersonExtened
{
public static void ShowName(this Person person)
{
Console.WriteLine(person.Name);
}
}
这时即可直接调用该扩展方法,如下图所示:
现有如下接口与实现类
public interface ICalc
{
int add(int num1,int num2);
}
class CalcFun : ICalc
{
public int add(int num1, int num2)
{
return num1 + num2;
}
}
假设现在有如下需求,在不更改现有接口的前提下,给所有实现Icalc接口的类增加减法,乘法,与除法的功能?这时候就可以用扩展方法实现,实现方式如下:
public static class CalcFunExtend
{
public static int min(this ICalc calc, int num1, int num2)
{
return num1 - num2;
}
public static int mul(this ICalc calc, int num1, int num2)
{
return num1 * num2;
}
internal static int min(int v1, int v2)
{
throw new NotImplementedException();
}
public static int div(this ICalc calc, int num1, int num2)
{
return num1 / num2;
}
}
这个时候再调用实现了Icalc接口的方法,即可同步实现减法,乘法与除法的功能,如下图所示:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。