Click here to Skip to main content
15,902,447 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hai..

What is the difference between static void methods and void methods..?

Thanks in advance..
Posted
Updated 22-Sep-11 22:41pm
v2

static has nothing to do with the return type. See Static Classes and Static Class Members[^].

In short a static method can be invoked without an instance of the containing type, e.g. MyClass.MyStaticMethod()
 
Share this answer
 
Adding to what Simon says so well, above: 'void' is a modifier that for any Method, whether static, or created in an instance of a Class, indicates it returns no value.
 
Share this answer
 
Static Variable :
A static Variable is associated with the class as a whole rather than with specific instances of a class. Each object will share a common copy of the static variables i.e. there is only one copy per class, no matter how many objects are created from it. Class variables or static variables are declared with the static keyword in a class. These are declared outside a class and stored in static memory. Class variables are mostly used for constants. Static variables are always called by the class name. This variable is created when the program starts and gets destroyed when the programs stops. The scope of the class variable is same an instance variable. Its initial value is same as instance variable and gets a default value when its not initialized corresponding to the data type.

Static Method :
Similarly, a static method is a method that belongs to the class rather than any object of the class and doesn't apply to an object or even require that any objects of the class have been instantiated.
Static methods are implicitly final, because overriding is done based on the type of the object, and static methods are attached to a class, not an object. A static method in a superclass can be shadowed by another static method in a subclass, as long as the original method was not declared final. However, you can't override a static method with a non-static method. In other words, you can't change a static method into an instance method in a subclass.

Non-Static method require class to be instantiated to access them.

You can find a full running example and information on static method at
1. Static Methods - In & out[^]
2. Static Methods - By Example[^]

Hope this helps.
All the best.
 
Share this answer
 
- Static void method:

This method returns nothing (hence void) is called without creating an instance of the class e.g.
C#
MyClassName.MyStaticMethod();


- void method:

This method aswell returns nothing (hence void) but can only be called by creating an instance of the class e.g.
C#
MyClassName mcn = new MyClassName();
mcn.MyStaticMethod();


..and remember if you are calling either a static or non-static method within the same class you can ommit the "MyClassName" and directly call your method.

Hope that helps,
Morgs
 
Share this answer
 
static methods are called by using classname like
C#
classname.staticmethod();


normal methods you can call directly
C#
normalmethod();
 
Share this answer
 
v2
static method we cannot create instances.and only one copy of method is created
for whole class.
 
Share this answer
 
Comments
Sergey Alexandrovich Kryukov 8-Jul-13 12:12pm    
Not just false answer, this is a plain gibberish. You mix it up with static type and, quite apparently, have no clue on programming in general.
—SA

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900