Open In App

Difference between readonly and const keyword in C#

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

In C#, a const keyword is used to declare constant fields and constant local. The value of the constant field is the same throughout the program or in other words, once the constant field is assigned the value of this field is not be changed. In C#, constant fields and locals are not variables, a constant is a number, string, null reference, boolean values.
Example:
 

CSharp




// C# program to illustrate the
// use of const keyword
using System;
 
class GFG {
 
    // Constant fields
    public const int myvar = 10;
    public const string str = "GeeksforGeeks";
 
    // Main method
    static public void Main()
    {
 
        // Display the value of Constant fields
        Console.WriteLine("The value of myvar: {0}", myvar);
        Console.WriteLine("The value of str: {0}", str);
    }
}


Output: 
 

The value of myvar: 10
The value of str: GeeksforGeeks

In C#, you can use a readonly keyword to declare a readonly variable. This readonly keyword shows that you can assign the variable only when you declare a variable or in a constructor of the same class in which it is declared.
Example:
 

CSharp




// C# program to illustrate the use
// of the readonly keyword
using System;
 
class GFG {
 
    // readonly variables
    public readonly int myvar1;
    public readonly int myvar2;
 
    // Values of the readonly
    // variables are assigned
    // Using constructor
    public GFG(int b, int c)
    {
 
        myvar1 = b;
        myvar2 = c;
        Console.WriteLine("Display value of myvar1 {0}, "+
                        "and myvar2 {1}", myvar1, myvar2);
    }
 
    // Main method
    static public void Main()
    {
        GFG obj1 = new GFG(100, 200);
    }
}


Output: 
 

Display value of myvar1 100, and myvar2 200

 

ReadOnly Vs Const Keyword

 

 

ReadOnly Keyword Const Keyword
In C#, readonly fields can be created using readonly keyword In C#, constant fields are created using const keyword.
ReadOnly is a runtime constant. Const is a compile time constant.
The value of readonly field can be changed. The value of the const field can not be changed.
It cannot be declared inside the method. It can be declared inside the method.
In readonly fields, we can assign values in declaration and in the constructor part. In const fields, we can only assign values in declaration part.
It can be used with static modifiers. It cannot be used with static modifiers.

 



Last Updated : 12 May, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads