Difference between readonly and const keyword in C#

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:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


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:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


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 contructor 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.


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.