Как правильно именовать в C#?

Я очень редко программирую на чем-то кроме 1С, поэтому недавно, когда писал код на C# обнаружил, что я использую целых три способа именования (нотации) переменных:

  1. Каждое слово с маленькой буквы через подчеркивание
  2. Каждое слово с большой буквы без разделителей
  3. Префикс маленькими буквами и слово с большой буквы.

У меня от такого разнообразия прямо в глазах рябит. А как правильно?

Посмотрел, как написано SDK китайскими товарищами:

Сильно это понимания не добавило. Разве что они не используют нотацию с маленькими буквами через подчеркивание.

Поэтому решил, что можно использовать одиночный буквы для индексов, а так использовать префиксы типа и нотацию с началом каждого слова с больших букв.

Посмотрел свой код на VB, там такой же разброд и шатание:

В общем, думаю одиночные слова можно писать маленькими, а идентификаторы из нескольких слов — с больших букв каждое слово и добавлять если надо, префикс типа. Что скажете?