在中使用扩展方法来扩展接口

除锈机砖机设备2021年09月06日

今天给大家介绍一些有关扩展方法的一些知识,主要讲解一下在C#3.0中使用扩展方法来扩展接口。  1、扩展方法跟原来类的方法重名时候的处理逻辑

2、扩展方法的嵌套

现在我们来看扩展方法使用的第三个场景:使用扩展方法来扩展接口

应用场景举例:

我们有时候会发现最初定义的一个接口,在现在环境下,这个接口需要再增加一个函数。有了扩展方法后,我们在这种情况下又多了一种实现的选择。下面以代码来说明这个问题:

以下是引用片段:

o

{

interfaceMyInterface

{

voidTest01();

}

publicclassMyClass:MyInterface

{

publicvoidTest01()

{

iteLine(\"Test01\");

}

}

staticclassMyExtensionMethods

{

publicstaticvoidMyTest002(thisMyInterfaceii)

{

st01();

}

}

}

调用方法:

以下是引用片段:

o;

staticvoidMain(string[]args)

{

MyInterfacemm=newMyClass();

Test002();

adLine();

}

分析这样做的好处:

1、如果我们实现 MyInterface 接口的类很多,这些类没有派生关系,这时候我们要在接口上新增一个函数,按照以前的做法,这个接口的实现类有多少个,我们就需要改多少个,使用了扩展方法后,我们只需要改一个地方。减少代码量。如果实现这个接口的类被封装在不同的组件中,一些组件由于其他原因难以修改,这时候用扩展方法来扩展接口真是给我们一剂良药呀;

2、扩展方法被调用到,前提条件是扩展方法所在的命名空间被使用了。我们如果把接口跟扩展方法放到同一个命名空间,扩展方法需要引用命名空间的问题就可以认为不存在了。因为你要用这个接口,必然会引用这个命名空间。

在之前的视频游戏大会首映的宣传视频 3、扩展方法扩展的接口,与你自己实现这个接口的类中自己实现的函数重名时候的问题(这时候也可以简单认为是这个类 override 了这个函数实现)。

先说结论:这两个不存在冲突问题,你如果是接口调用,则是扩展方法,如果是实现类调用,则是实现类自己的方法,参看我前面博客对扩展方法跟原来类的方法重名时候的处理逻辑的描述,下面再以一段代码来描述这个问题。

以下是引用片段:

o

{

interfaceMyInterface

{

voidTest01();

}

staticclassMyExtensionMethods

{

publicstaticvoidMyTest002(thisMyInterfaceii)

{

st01();

}

}

publicclassMyClass:MyInterface

{

publicvoidTest01()

{

iteLine(\"Test01\");

}

publicvoidMyTest002()

{

iteLine(\"MyTest002\");

}

}

}

调用代码:

以下是引用片段:

o;

staticvoidMain(string[]args)

{

MyInterfacemm=newMyClass();

Test002();

iteLine(\"***********\");

((MyClass)mm).MyTest002();

adLine();

}

这段代码执行的结果是

Test01

***********

MyTest002

分析:

Test002(); 这行代码是接口调用,则使用的是扩展方法。

((MyClass)mm).MyTest002(); 这行代码调用者类型是MyClass ,MyClass 实现了MyTest002 函数,则不是扩展方法调用。

查看本文来源

唐山哪里治白癜风最好
武汉治疗前列腺炎哪家好
新必奇蒙脱石散和思密达的区别
相关阅读
投资者提问:请问公司在买主交易服务国内的市场占有率如何?

投资者提问:请问日本公司在二手车交易免费国内的美国市场占有率如何?董...

2023-09-12
恋就是让一个笨手笨脚的小女孩有人照顾 有人惦记 如果让她哭 你算什么男子汉 你算大笨蛋 艾特ta热门

恋人就是让一个笨手笨脚的莎拉有人照顾 有人惦记 如果让她不禁 你唯什么男...

2023-09-09
为啥奈何二胎比头胎难?要二胎这一时间还没中,三种原因可以先排除

随着要务更高科技的慢慢发展,人们的生活水平逐渐的提更高,可是有如而来...

2023-09-08
杨浦区通报1例全球化面阳性感染者相关情况丨疫情防控新闻发布会

现在(6月15日)下午参加的市非典应对工作新闻发布会上,浦东新区副区长王...

2023-09-06
美味意大利面如何做?简略教程,新手看了也能一次成功,建议收藏

鲜美意大利面如何花钱?详实讲义,新手看了也能一次成功,建议美术品 世...

2023-09-05
《怪异》:跟鬼佛对上眼会发疯的一部惊悚片悬疑剧

跟大家说个都市传说就是「午后醒过来,千万小心别跟孩子对上暗」(惊?这...

2023-09-03
友情链接