I kept looking at many articles on extension methods and for some reason I couldn’t get mine to work. It then dawned on me that the class where you declare you extension methods MUST BE STATIC. That is a gotcha and for some reason it isn’t emphasized even though all of the examples clearly have static classes and methods.
The basics of extension methods are:
- Static Class
- Static Methods
- Use the “this” keyword to in order to infer what is expected to use the extension method
//Basic example
public static class CustomExtentionMethodsClass
{
public static void IncrementAllByNumber(this List list, int intValue)
{
for(int i; i < list.Count; i++)
list[i] += intValue;
}
}
//Usage
List lstOfInt = new List();
lstOfInt.Add(1);
lstOfInt.Add(2);
lstOfInt.Add(3);
lstOfInt.IncrementAllByNumber(2);
//Elements should all be incremented by 2
//2
//4
//5