Constant:
A constant member is defined at compile time and cannot be changed at runtime. Constants are declared as a field, using the const keyword and must be initialized as they are declared.
For example:
public class MyConstClass
{
public const double PI = 3.14159;
}
PI cannot be changed in the application anywhere else in the code as this will cause a compiler error.
ReadOnly:-
A read only member is like a constant in that it represents an unchanging value. The difference is that a readonly member can be initialized at runtime, in a constructor as well being able to be initialized as they are declared
For example;
public class MyClass
{
public readonly double PI = 3.14159;
}
OR
public class MyClass
{
public readonly double PI;
public MyClass()
{
PI = 3.14159;
}
}