Tweeted twitter.com/StackSoftEng/status/1023856026246897665
6 Adding inheritance tag
| link
    Question Protected by gnat
5 Edited for clarity and grammer; formatted to enhance the question
source | link

"Abstract class" and "interface" are similar type of ideasconcepts, whilewith interface being the more abstract of the two. One differentialdifferentiating factor foris that abstract classes was to provide method implementations for the derived classes when needed. But inIn C#, thathowever, this differentiating factor has also been reduced by lately introducedthe recent introduction of extension methods, which also works with interfaces alongside classesenable implementations to be provided for interface methods. And now, weAnother differentiating factor is that a class can use 'Properties' in interfaces also as we could use variables ininherit only one abstract class (i. Againe., multiple inheritancesthere is not supported in C#no multiple inheritance), but it can implement multiple interfaces. ButThis makes interfaces do not has this limitation beingless restrictive and more flexible. So, in C#, when should we use abstract classes instead of using interfaces with extension methods?So, in C#, when should we use abstract classes instead of interfaces with extension methods?

A notable example of the interface + extension method model is the heavily usedLINQ, where query functionality is provided for any type that implements IEnumerable interface and it's helpervia a multitude of extension methods. You use Linq and it's all those extension methods!

"Abstract class" and "interface" are similar type of ideas, while interface being more abstract. One differential factor for abstract classes was to provide method implementations for the derived classes when needed. But in C#, that factor has also been reduced by lately introduced extension methods, which also works with interfaces alongside classes. And now, we can use 'Properties' in interfaces also as we could use variables in abstract class. Again, multiple inheritances is not supported in C#. But interfaces do not has this limitation being more flexible. So, in C#, when should we use abstract classes instead of using interfaces with extension methods?

A notable example of interface + extension method model is the heavily used IEnumerable interface and it's helper extension methods. You use Linq and it's all those extension methods!

"Abstract class" and "interface" are similar concepts, with interface being the more abstract of the two. One differentiating factor is that abstract classes provide method implementations for derived classes when needed. In C#, however, this differentiating factor has been reduced by the recent introduction of extension methods, which enable implementations to be provided for interface methods. Another differentiating factor is that a class can inherit only one abstract class (i.e., there is no multiple inheritance), but it can implement multiple interfaces. This makes interfaces less restrictive and more flexible. So, in C#, when should we use abstract classes instead of interfaces with extension methods?

A notable example of the interface + extension method model is LINQ, where query functionality is provided for any type that implements IEnumerable via a multitude of extension methods.

4 improved wording
source | link

When to use abstract classes instead of interfaces andwith extension methods in C#?

"Abstract class" and "interface" are similar type of ideas, while interface being more abstract. One need ofdifferential factor for abstract classes was to provide method implementations for the derived classes when needed. But in C#, that needfactor has also been reduced by lately introduced extension methods, which also works with interfaces alongside classes. And now, we can use 'Properties' in interfaces also as we could use variables in abstract class. Again, multiple inheritances is not supported in C#. But interfaces do not has this limitation being more flexible. So, in C#, when should we use abstract classes instead of using interfaces andwith extension methods associated with the interface?

And now, we can use 'Properties' in interfaces also. A notable example of interface+interface + extension methodsmethod model is the Heavilyheavily used IEnumerable interface and it's helper extension methods. You use Linq and it's all by thisthose extension methods!

When to use abstract classes instead of interfaces and extension methods in C#?

"Abstract class" and "interface" are similar type of ideas, while interface being more abstract. One need of abstract classes was to provide method implementations for the derived classes. But in C#, that need has also been reduced by lately introduced extension methods. So, in C#, when should we use abstract classes instead of using interfaces and extension methods associated with the interface?

And now, we can use 'Properties' in interfaces also. A notable example of interface+ extension methods is the Heavily used IEnumerable and it's helper methods. You use Linq and it's all by this extension methods!

When to use abstract classes instead of interfaces with extension methods in C#?

"Abstract class" and "interface" are similar type of ideas, while interface being more abstract. One differential factor for abstract classes was to provide method implementations for the derived classes when needed. But in C#, that factor has also been reduced by lately introduced extension methods, which also works with interfaces alongside classes. And now, we can use 'Properties' in interfaces also as we could use variables in abstract class. Again, multiple inheritances is not supported in C#. But interfaces do not has this limitation being more flexible. So, in C#, when should we use abstract classes instead of using interfaces with extension methods?

A notable example of interface + extension method model is the heavily used IEnumerable interface and it's helper extension methods. You use Linq and it's all those extension methods!

    Bounty Ended with Steven Evers's answer chosen by Gulshan
    Bounty Started worth 50 reputation by Gulshan
3 added 221 characters in body
source | link
2 Added C#
source | link
1
source | link