What is the difference between constant and read only in c#
Constants are
declared at compile time using the const keyword and must be initialized when
they are declared
Constants value cannot
be changed at runtime.
public class CodeViewClass
{
public const int
GST18 = 18;
}
A readonly is
similar like a constant behaviour with an unchanging value.
But the main
difference is that it can be initialized at runtime in a constructor.
public class CoderSampleClass
{
// here readonly fiels is
declared and asigned value
public readonly int
GST18 = 18;
//OR
// here readonly fiels is
declared
public readonly int
GST28;
public
CoderSampleClass()
{
// here initializeing
vaule in readonly fiels
GST28 = 28;
}
}
CONST
- The value of constant is evaluated at compile time
- You must assign value const field at time of declaration
- In C# Const are by default static.
- The value is same for all objects and cannot be changes
- No Memory Allocated Because const value is embedded in IL code itself after compilation.
- Const variable can not be passed as ref or out parameter
ReadOnly
- The value is evaluated at run time.
- You can assign value readonly field at the time of declaration
- The value can be change by initializing in the constructor.
- Dynamic memory allocated for readonly fields
- You can pass readonly field as ref or out parameters in the constructor context.
No comments:
Post a comment