What is the difference between “Readonly” and “Constant” variables? with example

In general, you should use readonly variables if you are not sure whether the value will change at run time. You should use constant variables if you are sure that the value will never change.

Here are some additional points to keep in mind about readonly and constant variables in C#:

  • Readonly variables can be declared in methods, but constant variables cannot.
  • Readonly variables can be used with reference types, but constant variables cannot.
  • Readonly variables are runtime constants, while constant variables are compile-time constants.
example that demonstrates the usage of both const and readonly variables in C#:
public class ConstantsExample { public const int MyConst = 100; // Compile-time constant public readonly int MyReadonly; public ConstantsExample(int value) { MyReadonly = value; // Assigned within the constructor } }

In the above example, we have a ConstantsExample class that contains a const variable named MyConst and a readonly variable named MyReadonly.

The MyConst variable is a compile-time constant, meaning its value is known and fixed at compile-time. It is assigned the value 100 and cannot be changed during the execution of the program. It can be accessed using ConstantsExample.MyConst without creating an instance of the class.

The MyReadonly variable is a readonly variable, which means its value can be assigned during object initialization or within the constructor. In the constructor of the ConstantsExample class, the MyReadonly variable is assigned the value passed as a parameter. Each instance of the class can have a different value for MyReadonly, but once assigned, its value cannot be changed.

Here's an example of how you can use this class:

ConstantsExample example1 = new ConstantsExample(50); ConstantsExample example2 = new ConstantsExample(200); Console.WriteLine(ConstantsExample.MyConst); // Output: 100 Console.WriteLine(example1.MyReadonly); // Output: 50 Console.WriteLine(example2.MyReadonly); // Output: 200

In the above example, we create two instances of the ConstantsExample class, example1 and example2. Each instance has its own value for the MyReadonly variable. We can access the MyConst constant using the class name directly, and we can access the MyReadonly variable through the instances of the class.

Post a Comment

Previous Post Next Post