Difference between a constant and readonly variables/fields : (constant vs readonly)
-
What is the difference between constant and readonly
fields?
-
When to use constant and when to use readonly
fields?
-
What is the advantage/disadvantage of each?
-
In C# you can declare a constant like this "const" is a keyword.
public const string _constStrVar = "I am a static const str val"; -
A constant variable should have value at design
time.
-
All the constant variables are static ie they are
shared across all the instances of the class. You dont
have to add the keyword "static".
-
Constants are copied to all the dlls where
is refereeing the parent class ie even if you change the
the original constant value and recompile the parent dll
, the other dll will still use the old value. The size
of the executable goes up since all these constants are
copied to the respective dlls
-
Read only variables are created usually in
the constructor of class. there fore it will have values
before the constructor of the class exists
{
public readonly string _strReadonly;
public void MyClass(string strVal)