C# Static Variable | C# static - c# - c# tutorial - c# net

C# Static Variable
What is the use of static variable in C# ?
- In C#, static is a keyword or modifier that belongs to the type not instance.So instance is not required to access the static members.
- In C#, static can be field, method, constructor, class, properties, operator and event.

Static Variable
- Note: Indexers and destructors cannot be static.
Advantage of C# static keyword
Memory efficient:
- Now we don't need to create instance for accessing the static members, so it saves memory.
- Moreover, it belongs to the type, so it will not get memory each time when instance is created.
C# Static Field
- A field which is declared as static, is called static field.
- Unlike instance field which gets memory each time whenever you create object, there is only one copy of static field created in the memory.
- It is shared to all the objects.
- It is used to refer the common property of all objects such as rateOfInterest in case of Account, companyName in case of Employee etc.
C# static field example
- Let's see the simple example of static field in C#.
using System;
public class Account
{
public int accno;
public String name;
public static float rateOfInterest=8.8f;
public Account(int accno, String name)
{
this.accno = accno;
this.name = name;
}
public void display()
{
Console.WriteLine(accno + " " + name + " " + rateOfInterest);
}
}
class TestAccount{
public static void Main(string[] args)
{
Account a1 = new Account(101, "Sonoo");
Account a2 = new Account(102, "Mahesh");
a1.display();
a2.display();
}
}
C# examples - Output :
101 Sonoo 8.8
102 Mahesh 8.8
C# static field example 2: changing static field
- If you change the value of static field, it will be applied to all the objects.
using System;
public class Account
{
public int accno;
public String name;
public static float rateOfInterest=8.8f;
public Account(int accno, String name)
{
this.accno = accno;
this.name = name;
}
public void display()
{
Console.WriteLine(accno + " " + name + " " + rateOfInterest);
}
}
class TestAccount{
public static void Main(string[] args)
{
Account.rateOfInterest = 10.5f;//changing value
Account a1 = new Account(101, "Sonoo");
Account a2 = new Account(102, "Mahesh");
a1.display();
a2.display();
}
}
C# examples - Output :
101 Sonoo 10.5
102 Mahesh 10.5
C# static field example 3: Counting Objects
- Let's see another example of static keyword in C# which counts the objects.
using System;
public class Account
{
public int accno;
public String name;
public static int count=0;
public Account(int accno, String name)
{
this.accno = accno;
this.name = name;
count++;
}
public void display()
{
Console.WriteLine(accno + " " + name);
}
}
class TestAccount{
public static void Main(string[] args)
{
Account a1 = new Account(101, "Sonoo");
Account a2 = new Account(102, "Mahesh");
Account a3 = new Account(103, "Ajeet");
a1.display();
a2.display();
a3.display();
Console.WriteLine("Total Objects are: "+Account.count);
}
}
C# examples - Output :
101 Sonoo
102 Mahesh
103 Ajeet
Total Objects are: 3