Constants:
Constants are declared using a "const" keyword.
Constants should be assigned a value at the time of the variable declaration and hence are known at compile time.
example :
void add(int Z)
{
const int X = 10, X1 = 50;
const int Y = X + X1; //no error, since its evaluated a compile time
const int Y1 = X + Z; //gives error, since its evaluated at run time
}
Readonly variables are known at runtime, they can be assigned a value either at runtime or at the time of the instance initialization
or with in the constructor of same class.
class MyClass
{
readonly int X = 10; // initialized at the time of declaration
readonly int X1;
public MyClass(int x1)
{
X1 = x1; // initialized at run time
}
}