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

Calling extension methods in the other assemblies


We have successfully created the IsPalindrome() extension method in the previous section. It's quite easy to call the extension method since it's defined inside the same namespace as the caller method. In other words, the IsPalindrome() extension method and the Main() method are in the same namespace. We don't need to add a reference to any module since the method is there along with the caller. However, in common practice, we can create extension methods in the other assemblies, which we usually call class library. The use of the library will ease the use of the extension method since it can be reused, so we can use the extension method in many projects.

Referencing a namespace

We are going to create an extension method in the Class Library and call it in another project. Let's create a new Class Library project named ReferencingNamespaceLib.csproj and insert the following code into the ExtensionMethodsClass.cs file:

using System; 
namespaceReferencingNamespaceLib...