I've read many opinions that public fields are evil, public properties are by designed to be public and we can do super great things with setters and getters etc.
My understanding is, although minimal, readonly fields are a performance hit (and, related to performance or not, I know both FXCop and Resharper prompt me to use readonly where ever possible).
I know we can't have a readonly property in .NET but, are readonly public fields still evil?