Все имена методов в C # начинаются с заглавной буквы по соглашению. Все имена свойств тоже так делают. Только частные поля, локальные переменные и параметры для методов начинаются со строчной буквы (AFAIR).
Это соглашение, поэтому спрашивать «почему» немного неуместно. Вероятно, это похоже на вопрос: «Почему соглашение о кодировании Java предпочитает строчные буквы для всего, кроме классов?» - ответы на такие вопросы обычно бывают «Потому что кто-то где-то когда-то решил, что это будет хорошей идеей» , Остальное - это просто история - или соглашение, и вы либо следуете ему, либо нет (в этом случае вы усложняете жизнь людей, читающих ваш код).
ETA: Как уже было сказано в комментарии, (imho) ответ на вопрос «почему?» Обычно приводит к тому, что разработчики языка (или люди, придумавшие соглашение) считают важные аспекты, охватываемые конвенцией. В Java это явно случай визуального различения классов (PascalCase), переменных / полей (camelCase) и свойств (get ~ () / set ~ ()). Для .NET, очевидно, была необходимость немедленного разграничения классов и интерфейсов (что я тоже считаю довольно приятным) и визуального различения свойств (PascalCase) и доступа к полям (camelCase).
Обычно в таких сценариях все вещи не , изначально считавшиеся важными для конвенции, не достигают очевидности.