Kartik Patel Kartik Patel - 1 month ago 5
C# Question

What is the use of static variable in C#? When to use it? Why can't I declare the static variable inside method?

I have searched about static variables in C#, but I still am not getting what its use is. Also, if I try to declare the variable inside the method it will not give me the permission to do this. Why?

I have seen some examples about the static variable. I've seen that we don't need to create a instance of the class to access the variable, but that is not enough to understand what its use is and when to use it.

Second thing

class Book
{
public static int myInt = 0;
}

public class Exercise
{
static void Main()
{
Book book = new Book();
Console.WriteLine(book.myInt);//shows error why its shows me error?cant i access the static variable by making the instance of a class?
Console.ReadKey();

}
}

Answer

A static variable shares the value of it among all instances of the class.

Example without declaring it static

public  class Variable
{
    public int i = 5;
    public void test()
    {
        i=i+5;
        Console.WriteLine(i);
    }
}


public class Exercise
{
    static void Main()
    {
        Variable var = new Variable();
        var.test();
        Variable var1 = new Variable();
        var1.test();
        Console.ReadKey();
    }
}

Explanation:If you look at the above example i just declare int variable.when i run this code the output will be 10 and 10.Its simple

Now Lets Look at the static variable Here,I am declaring the variable as a static.

Example with static variable

public  class Variable
{
    public static int i = 5;
    public void test()
    {
        i=i+5;
        Console.WriteLine(i);
    }
}


public class Exercise
{
    static void Main()
    {
        Variable var = new Variable();
        var.test();
        Variable var1 = new Variable();
        var1.test();
        Console.ReadKey();
    }
}

Now when I run above code then the output will be 10 and 15. So static variable value is shared among all instances of that class.