Sobes.tech
Junior

What is the essence of extension methods?

sobes.tech AI

Answer from AI

Extension methods allow adding new methods to existing types without modifying their original code or creating a new derived type.

The essence is as follows:

  • They are declared as static methods in a static class.
  • The first parameter of the extension method has the keyword this before its type. This parameter indicates the type being extended.
  • They are called as if they were instance methods of the extended type.

Example:

// Static class for extension methods
public static class StringExtensions
{
    // Extension method for the string type
    public static string Truncate(this string input, int maxLength)
    {
        if (string.IsNullOrEmpty(input))
        {
            return input;
        }
        return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
    }
}

// Using the extension method
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Called as an instance method

// Equivalent to calling the static method directly
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);

Advantages:

  • Improve code readability by allowing the use of "dot" syntax on objects.
  • Enable adding functionality to "sealed" classes or types from third-party libraries without changing the original code.
  • Simplify writing LINQ queries, as many LINQ methods are implemented as extension methods.
What is the essence of extension methods? — C# - sobes.tech