difference between constant and read only in C#

Total Post:135

C#  .NET 
 777  View(s)
Rate this:
Please give me a brief introduction about constant and read only in c# and its differences.

Thank you.
  1. Post:13

    Re: difference between constant and read only in C#


    It is a compile-time constant. A field or local variable which is declared as constant can be initialized with a constant expression which must be fully evaluated at compile time.

    You can mark Constants as public, private, protected, internal, or protected internal access modifiers.

    When to use

    If you think that the value of field or local variable is never changed.

    const int x = 10;  
    const int y = 20;  
    const int z = x + y;  
    Console.WriteLine("The value of x :" + x);  
    Console.WriteLine("The value of y :" + y);  
    Console.WriteLine("The value of z :" + z);   
    int a = 15;  
    const int b = x + a;  
    Console.WriteLine("The value of b :" + b);  
    //The variable 'a' is assigned but its value is never used  

    It is same as Constant but it is run time constant. I mean to say that a ReadOnly field or local variable can be initialized either at the time of declaration or inside the constructor of same class. That is why we called it run time constant.

    public class MyClassProgram  
       readonly int x = 10;  
       public MyClassProgram()  
          //changed the value in constructor  
          x = 20;  

    As you know that we cannot declare Constant as static but we can do it for readonly explicitly. By default it is not static. It can be applied to value type and reference type [which initialized by using the new keyword)] both and also with delegate and event

    When to use

    If you think, you need to change the value of variable or field at run time inside the calling constructor, then you need to use the readonly modifier.

      Modified On Apr-11-2018 12:46:46 AM