Why can't the keyword this
be used in a static method? I am wondering why C# defines this constraint. What benefits can be gained by this constraint?
[Update]: Actually, this is a question I got in an interview. I do know the usage of 'static' and 'this', based on all your response, I guess I know a little of why the two can not be used together. That is, for static method is used to changed state or do something in a type level, but when you need to use 'this' means you want to change the state or do something in a instance level. In order to differentiate the state change of a type and the state change of an instance, then c# donot allow use 'this' in a static method. Am I right?
Because this
points to an instance of the class, in the static method you don't have an instance.
You'll notice the definition of a static member is
Which is why this
has nothing to point to.