Csharp/CSharp Tutorial/Class/static method
Static Member Functions
<source lang="csharp">using System; class MyClass {
public MyClass() { instanceCount++; } public static int GetInstanceCount() { return(instanceCount); } static int instanceCount = 0;
} class MainClass {
public static void Main() { MyClass my = new MyClass(); Console.WriteLine(MyClass.GetInstanceCount()); }
}</source>
1
Use static
There are several restrictions that apply to static methods:
- A static method does not have a this reference.
- A static method can directly call only other static methods.
- A static method cannot directly call an instance method of its class.
- A static method must directly access only static data.
- You can"t directly access a non-static variable from within a static method.
- You can"t directly call a non-static method from within a static method.
<source lang="csharp">using System;
class StaticDemo {
// a static variable public static int val = 100; // a static method public static int valDiv2() { return val/2; }
}
class MainClass {
public static void Main() { Console.WriteLine("Initial value of StaticDemo.val is " + StaticDemo.val); StaticDemo.val = 8; Console.WriteLine("StaticDemo.val is " + StaticDemo.val); Console.WriteLine("StaticDemo.valDiv2(): " + StaticDemo.valDiv2()); }
}</source>
Initial value of StaticDemo.val is 100 StaticDemo.val is 8 StaticDemo.valDiv2(): 4