What is Extension Method in C#: Simple Explanation and Example
extension method in C# is a special kind of static method that lets you add new methods to existing types without changing their source code. You call it like a regular method on the object, making your code cleaner and easier to read.How It Works
Imagine you have a toolbox but want to add a new tool without buying a new box or changing the existing tools. Extension methods work like that new tool added to your toolbox. They let you add new functions to existing classes or types without modifying their original code.
Technically, an extension method is a static method inside a static class, but it uses a special this keyword before the first parameter to tell the compiler which type it extends. When you call this method on an object, it looks like the method belongs to that object's class, even though it is defined elsewhere.
Example
This example shows how to add a method called IsEven to the built-in int type. It returns true if the number is even, otherwise false.
using System; public static class IntExtensions { public static bool IsEven(this int number) { return number % 2 == 0; } } class Program { static void Main() { int value = 10; bool result = value.IsEven(); Console.WriteLine($"Is {value} even? {result}"); } }
When to Use
Use extension methods when you want to add useful features to existing types without changing their code or creating a new derived class. This is especially helpful when working with types from libraries or frameworks you cannot modify.
Common real-world uses include adding helper methods to strings, collections, or custom classes to make your code more readable and expressive. For example, adding a method to check if a string is a valid email or to simplify complex operations on lists.
Key Points
- Extension methods must be static and defined in static classes.
- The first parameter uses
thisto specify the type being extended. - They allow calling the method as if it belongs to the extended type.
- They do not modify the original type or its source code.
- They improve code readability and organization.
Key Takeaways
this to specify the extended type.