That's pretty much it. Const fields can only be used for types where there is a literal representation of the type, and the values are "burned into" the code that uses them. Readonly fields can be used for any type, and the code that uses them references the constructed value at runtime.