Todos los nombres de métodos en C# comienzan con una letra mayúscula por convención. Todos los nombres de propiedades también lo hacen. Solo los campos privados, las variables locales y los parámetros de los métodos comienzan con una letra minúscula (AFAIR).
Es una convención, por lo que pedir un "por qué" está un poco fuera de lugar. Probablemente sea como preguntar "¿Por qué la convención de codificación Java prefiere letras minúsculas para todo menos para las clases?" - las respuestas a tales preguntas suelen ser "Porque alguien, en alguna parte, decidió que sería una buena idea hacerlo" . El resto entonces simplemente es historia o convención y usted lo sigue o no (en cuyo caso le dificulta la vida a las personas que leen su código).
ETA: Como se ha dicho en un comentario ya, (en mi humilde opinión) la respuesta a la pregunta »por qué« por lo general conduce a lo que los diseñadores del lenguaje (o las personas que vienen con la convención) que se consideran aspectos importantes a? estar cubierto por la convención. En Java, es claramente un caso de clases visualmente diferentes (PascalCase), variables/campos (camelCase) y propiedades (get ~()/set ~()). Para .NET obviamente existía la necesidad de separar las clases e interfaces de inmediato (algo que también considero muy agradable tener) y distinguir visualmente el acceso a la propiedad (PascalCase) y el campo (camelCase).
Por lo general, en tales escenarios todas las cosas no consideradas inicialmente importantes para la convención son cortas en obviedad.
Sí, descubrí que esta es la convención. Pero me pregunto cuál sería la recompensa por seguir esta convención. En mi opinión, hace que el código sea más difícil de leer. Me gusta poder decir el nombre del método, ya sea privado o no. – Jan
@illdev: Y me encantaría ver un nombre en Java, ya sea que se trate de una interfaz o no. Créalo o no, las convenciones a menudo tienen metas que quieren lograr y no alcanzan las metas. Eso es simplemente una cuestión de lo que los diseñadores de lenguaje pensaron y consideraron importante. – Joey
@illdev: ¿En qué situación sería valioso ver que el método es privado? Si está viendo la declaración, lo privado está en la misma línea. Si intenta acceder al método desde una clase diferente, entonces nunca la verá. Si está accediendo al método desde un método diferente en la misma clase, ¿realmente importa si es privado o no? –