What is the difference between readonly and const in C#?
In C# readonly and const are used to define constants but both have some
differences. It is the most asked question by the interviewer.
Const
· Const is used to declare a compile-time constant.
· Const variable is evaluated at compile-time and cannot be changed at runtime.
· Const are static by default, so it belongs to the type rather than the instance.
· Const variables must be initialized with a value at the time of declaration and can only hold simple data types.
Example:
using System;
namespace SoftwareEngineerDotNet
{
class MyMainClass
{
private const double PI = 3.14;
static void Main(string[] args)
{
const int Age = 20;
// compile time error.
// Reassigning a const variable is not allowed
Age++;
Console.ReadLine();
}
}
}
Readonly
· Readonly keyword is used to declare a runtime constant.
· Readonly variables can be assigned a value either at the time of declaration or within the constructor of the class.
· Readonly modifier ensures that the variable's value can only be changed during object initialization or within the constructor. Each instance of the class can have a different value for a readonly field.
Example:
using System;
namespace SoftwareEngineerDotNet
{
public class MyClass
{
//Some valid scenario to initialize readonly variables
public readonly int MyReadOnlyField;
public readonly string MobileNumber = "5487458475";
//readonly fields can be initlized in constructor
public MyClass(int value)
{
MyReadOnlyField
= value;
}
}
class MyMainClass
{
static void Main(string[] args)
{
MyClass myClass
= new MyClass(2);
Console.ReadLine();
}
}
}
0 comments:
Post a Comment
Do not enter spam link