Child pages
  • Member can be made static
Skip to end of metadata
Go to start of metadata

So ReSharper detects that a member has no instance dependencies and can be made static, what’s the point? Well, as it turns out, static members yield a small performance benefit under particular circumstances.

Here’s what the MSDN documentation has to say about it:

Members that do not access instance data or call instance methods can be marked as static (Shared in Visual Basic). After you mark the methods as static, the compiler will emit nonvirtual call sites to these members. Emitting nonvirtual call sites will prevent a check at runtime for each call that makes sure that the current object pointer is non-null. This can achieve a measurable performance gain for performance-sensitive code. In some cases, the failure to access the current object instance represents a correctness issue.

  • No labels