const vs. readonly
Today I found an article where a const field is called compile-time constant while a readonly field is called runtime constant . The two phrases come from 《Effective C#》. I searched in MSDN and the language spec, find nothing about runtime constant . No offensive but I don't think runtime constant is a proper phrase. private readonly string foo = "bar"; creates a variable named "foo", whose value is "bar", and the value is readonly, here it is a variable, no business on constant . A readonly variable is still a variable, it can't be a constant. Variable and constant are mutually exclusive.