Which naming convention do you use for local constants in C# and why?
const int Pi = 3;
const int pi = 3;
It seems the trade-off is between lower camel-case indicating restricted scope, and upper camel-case being more readable and easier to move to a class level. I've noticed StyleCop prefers upper camel-case.
We use lower-case (camel casing) because local constants are almost local variables except of course you cannot modify them. (And we use camel casing for local variables of course...)
I'm used to upper case (pascal case) for everything except variables and fields. Global constants are an exception to the fields, I don't know why, probably because they are public in some cases. Local constants are also lowercase so.
It's just a matter of taste imo. Of course, within a product / team, there should be an agreement.
On the other hand, our coding guideline requires full uppercase for constants, this would be
PI
in this case. I don't like this because upper cases are hard to read and need underlines for separation (which is against code analysis rules). Nobody follows this guideline anymore.