Difference between readonly and const keyword in C#
Last Updated :
12 May, 2021
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
using System;
class GFG {
public const int myvar = 10;
public const string str = "GeeksforGeeks" ;
static public void Main()
{
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
using System;
class GFG {
public readonly int myvar1;
public readonly int myvar2;
public GFG( int b, int c)
{
myvar1 = b;
myvar2 = c;
Console.WriteLine( "Display value of myvar1 {0}, " +
"and myvar2 {1}" , myvar1, myvar2);
}
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. |
Share your thoughts in the comments
Please Login to comment...