Here's another link demonstrating how const isn't version safe, or relevant for reference types.
Summary:
The value of your const property is set at compile time and can't change at runtime
Const can't be marked as static - the keyword denotes they are static, unlike readonly fields which can.
Const can't be anything except value (primitive) types
The readonly keyword marks the field as unchangeable. However the property can be changed inside the constructor of the class
The readonly only keyword can also be combined with static to make it act in the same way as a const (atleast on the surface). There is a marked difference when you look at the IL between the two
const fields are marked as "literal" in IL while readonly is "initonly"