In brief: instance method gets implicit parameter "this" used to access the instance on which the call is done. Static method does not have it; it is roughly equivalent to the pre-OOP function/procedure; in .NET, a static method cannot be virtual (but there are technologies where it can be).
To illustrate instance method mechanism, consider this:
class MyClass {
internal void SomeInstanceMethod() {
this.SomeMember = 3;
}
internal int SomeMember { get; set; }
}
MyClass myInstance = new MyClass();
myInstance.SomeInstanceMethod();
As you can see,
myInstance.*()
call is the way to pass instance parameter "this" to the method.
—SA