Constant | Readonly |
Value is evaluated at compile time | Value is evaluated at runtime |
Can be declared as class member or inside a method | Is not allowed inside a method |
Is always static | Can be static or instanceable |
Constant field can’t be used with static modifier | Readonly field can be used with static modifier |
Can only be initialized at declaration | Can be initialized at declaration or in the constructor |