Search code examples
c#.netcoding-stylestylecop

Why does StyleCop recommend prefixing method or property calls with "this"?


I have been trying to follow StyleCop's guidelines on a project, to see if the resulting code was better in the end. Most rules are reasonable or a matter of opinion on coding standard, but there is one rule which puzzles me, because I haven't seen anyone else recommend it, and because I don't see a clear benefit to it:

SA1101: The call to {method or property name} must begin with the 'this.' prefix to indicate that the item is a member of the class.

On the downside, the code is clearly more verbose that way, so what are the benefits of following that rule? Does anyone here follow that rule?


Solution

  • It can make code clearer at a glance. When you use this, it's easier to:

    • Tell static and instance members apart. (And distinguish instance methods from delegates.)
    • Distinguish instance members from local variables and parameters (without using a naming convention).