Let's step away from custom objects and talk about how we can extend existing classes so that they fit our own needs. The idea behind class extensions is simple: take an existing built-in C# class and add on any functionality that you need it to have. Since we don't have access to the underlying code that C# is built on, this is the only way to get custom behavior out of objects the language already has.
Classes can only be modified with methods – no variables or other entities are allowed. However limiting this might be, it makes the syntax consistent:
public static returnType MethodName(this ExtendingClass localVal) {}
Extension methods are declared using the same syntax as normal methods, but with a few caveats:
- All extension methods need to be marked as static.
- The first parameter needs to be the this keyword, followed the name of the class we want to extend and a local variable name:
- This special parameter lets the compiler identify the...