9

Possible Duplicate:
What’s a static method in c#?

I found it difficult to clear my mind about the actual concept of static and non-static(instance) members, after researching from so many forums i decided to put my question here:

What is the difference between static and non static members?

Community
  • 1
  • 1
Ammar Raja
  • 1,284
  • 5
  • 14
  • 23

2 Answers2

11

The static methods can by accessed directly from the class, while non-static methods (or instance methods as I like to call them) have to be accessed from an instance. That is why instatiating needs to be done for instance methods, while for static methods it's just not needed.

In OOP, static variables are used for values which cannot be stored by an instance variable. static methods cannot access instance methods or variables within a class. Of course that makes sense because that static method would not know which instance of the class we are trying to refer.

e.g. Supposed you wanted to keep a count of how many instances of a class exists? How would you store that in a single instance?

References:

  1. Static vs. Non-Static method in C#
  2. Static vs. non-static method
Community
  • 1
  • 1
Furqan Safdar
  • 16,260
  • 13
  • 59
  • 93
7
  • static members are one per class but non-static members are one per instance.

  • static members are accessed by their class name which encapsulates them, but non-static members are accessed by object reference.

  • static members can't use non-static methods without instantiating an object, but non-static members can use static members directly.

  • static constructor is used to initialize static fields, but for non-static fields normal instance constructor is used.

  • See here for performance related points.

Shaiju T
  • 6,201
  • 20
  • 104
  • 196
Azodious
  • 13,752
  • 1
  • 36
  • 71