DEV Community

Theodore Karropoulos
Theodore Karropoulos

Posted on

How to create an extension method in C#

Extension methods are methods that add additional functionality to any C# type without creating a new derived type or modifying the original type.

Format of Extension methods in C

public static class NameOfTheClass
{
    public static ReturnType(this typeOfTheSource source)
    {
        // Extension method definition
    }
}
Enter fullscreen mode Exit fullscreen mode

Example: Extension Method

.NET provides a static method that indicates whether a specified string is null oe an empty string. We can take this functionallity and wrap it in a custom extension method.

public static class StringExtensions
{
    public static bool IsNullOrEmpty(this string source)
    {
        return string.IsNullOrEmpty(source);
    }
}
Enter fullscreen mode Exit fullscreen mode

Usage

string str = "just a string";
if (str.IsNullOrEmpty)
{
    // do something if the string is null or empty
}
Enter fullscreen mode Exit fullscreen mode

Example: Extension method with additional parameters

The following example demostrates how to generate extension method with additional parameters. The bellow method rounds a given decimal to the given precission.

public static class DecimalExtensions
{
    public static decimal Rounding(this decimal dec, int precision)
    {
        return Math.Round(dec, precision);
    }
}
Enter fullscreen mode Exit fullscreen mode

Example: Generic extension methods

The following extension method take generic value types as parameters and source. This method searches if a given value exists in a given array.

public static class StructExtensions
{
    public static bool In<T>(this T value, params T[] parms) where T : struct
        => parms.Any(x => x.Equals(value));
}
Enter fullscreen mode Exit fullscreen mode

If you would like to read more stories, check out the kapadev blog

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay