A few questions about Extension Methods:
Why are Extension Methods static?
Why do they need to be declared in a static class?
Because there is no instance to call them on.
I think its to limit number of possible errors if it was declared in non-static class.
It says its extension method. Compiler sees this and allows to use it on type declared as this, instead as static method.
Extension method call is only syntactic sugar. This call gets converted into ordinary static method call in IL.