C# is all messed up, and I can't speak for it. But in Java, here's how it works.
Classes begin with a capital letter and use a capital letter for every word in the class name. Methods and variables have a lowercase beginning letter and an uppercase letter for the first letter of every subsequent word. Static final fields that are meant to be a reference to some unchanging value (for instance, PI is the name of the variable that represents a double roughly equal to pi).
See
http://java.sun.com/docs/codeconv/ht....doc8.html#367