title: Static methods vs instance methods in C#
body: <p>For an application I am writing, I want to have extreme extensibility and extension methods seem to give me what I want, plus the ability to call them without an instance, which I need too.</p>
  
  <p>I remember reading that static methods are faster than instance methods but don't get the advantages of GC. Is this correct?</p>
  
  <p>It's highly unlikely I will change my design unless I find a superior alternative by design not speed. But still for extra information I wanna know the differences in speed, GC, etc.</p>
  
  <p>EDIT: Thanks. More info: Let's say we have a Person class:</p>
  
  <pre><code>class Person
  </code></pre>
  
  <p>which can have an instance Distance method so like:</p>
  
  <pre><code>this.Distance (Person p)
  </code></pre>
  
  <p>This is great, but this doesn't give me the ability to calculate the distance between 2 points (say Point3), without creating instances of the Person class.</p>
  
  <p>What I want to do is this:</p>
  
  <pre><code>class Person (no Distance methods)
  </code></pre>
  
  <p>but extension methods of Distance:</p>
  
  <pre><code>Distance (this Person, Person)
  Distance (this Point3, Point3)
  </code></pre>
  
  <p>This way I can both do:</p>
  
  <pre><code>myPerson.Distance (yourPerson)
  </code></pre>
  
  <p>and</p>
  
  <pre><code>Extensions.Distance (pointA, pointB)
  </code></pre>
  
  <p>EDIT2: @Jon, yeah I think that was what was meant by (don't get the advantages of GC), but I somehow thought that the static methods create this burden/overhead.</p>