Book Image

Functional C#

Book Image

Functional C#

Overview of this book

Functional programming makes your application faster, improves performance, and increases your productivity. C# code is written at a higher level of abstraction, so that code will be closer to business requirements, abstracting away many low-level implementation details. This book bridges the language gap for C# developers by showing you how to create and consume functional constructs in C#. We also bridge the domain gap by showing how functional constructs can be applied in business scenarios. We’ll take you through lambda expressions and extension methods, and help you develop a deep understanding of the concepts and practices of LINQ and recursion in C#. By the end of the book, you will be able to write code using the best approach and will be able to perform unit testing in functional programming, changing how you write your applications and revolutionizing your projects.
Table of Contents (19 chapters)
Functional C#
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Limitations of the extension method


Although the extension method is a powerful tool to achieve our functional programming, this technique still has some limitations. Here, we elaborate on the limitations the extension methods face so that we can avoid their use.

Extending a static class

As we discuss extension methods further, we know that an extension method is a static method that has public accessibility inside the static class that has public accessibility as well. The extension method will appear in the type or class we target. However, not all classes can be extended using the extension method. The existing static class will not be able to be extended. For example, the Math class has been provided by .NET. Even though the class has provided a mathematical functionality we usually use, it might be that, sometimes, we need to add another functionality to the Math class.

However, since the Math class is a static class, it's nearly impossible to extend this class by adding a single method...