C# 如果继承已经存在,为什么我们需要扩展方法。。?

C# 如果继承已经存在,为什么我们需要扩展方法。。?,c#,C#,我在面试中经常遇到这个问题。但是我没有得到任何答案。请帮帮我。继承和扩展方法完全是正交的。这只是用熟悉的语言用C编写函数的一种简单方法。语法。只有当您将继承用于代码重用时,它们才会看起来相似,这往往会受到反对,但请确保您了解原因-最佳实践是上下文敏感的: 无论如何,我希望这个问题能让你开口说话。不要过于关注正确答案是什么——只需根据您的观点概述继承的用途、扩展方法的用途以及每种方法的优缺点。让对话框运行 例如,对我来说,扩展方法都是针对接口生成公共函数。也就是说,函数在接口或类的顶部添加功能,而

我在面试中经常遇到这个问题。但是我没有得到任何答案。请帮帮我。

继承和扩展方法完全是正交的。这只是用熟悉的语言用C编写函数的一种简单方法。语法。只有当您将继承用于代码重用时,它们才会看起来相似,这往往会受到反对,但请确保您了解原因-最佳实践是上下文敏感的:

无论如何,我希望这个问题能让你开口说话。不要过于关注正确答案是什么——只需根据您的观点概述继承的用途、扩展方法的用途以及每种方法的优缺点。让对话框运行

例如,对我来说,扩展方法都是针对接口生成公共函数。也就是说,函数在接口或类的顶部添加功能,而只使用其公共接口。这使得函数可以使用的接口的大小小得多,这反过来使推理变得更容易


不同的人使用不同的扩展方法,就像不同的人使用不同的继承一样。然而,我发现,随着从继承到组合的转变,扩展方法变得越来越有用,而且非常自然。继承是一种非常特殊的技术,它开始被用于几乎所有的事情,几乎没有什么理由,但这已经是程序员的一个大话题了,就像组合与继承之争:

密封类呢?扩展方法是添加到语言中的语法糖,使Linq调用看起来像是内置在所有实现IEnumerable的类中,等等。也就是说,这是一种向没有源代码的类添加方法的方法,或者是密封的。