Создайте имена, которые описывают объекты и их использование вами. Имен и контекста (не говоря уже о intellisense) должно быть достаточно, чтобы напомнить вам об их типах, когда вы на них смотрите.
На этой ноте я чувствую твою боль. Я изучил VB6 в колледже, и меня учили венгерской нотации, где переменная для имени будет называться strFirst. Когда я перешел на .NET и C #, я не спешил расстаться со своей старой привычкой, хотя принятый стандарт для C # не включал такую запись. Я почти соответствовал (или, по крайней мере, так сказал сам), сокращая нотацию до одного символа, поэтому имя будет сохранено в переменной с именем sFirst. Я сказал себе, что мне нужен этот символ, чтобы я знал, какой у меня тип переменной. Но вы знаете, что? Это усилило еще одну дурную привычку, поскольку мое имя переменной было недостаточно описательным. Что такое sFirst? Во первых чего? Теперь я, очевидно, мог бы сделать имя переменной более описательным и сохранить венгерскую нотацию, но для меня одна плохая привычка (нотация) шла рука об руку с другой (сокращенные имена переменных).
В конце концов, и это было, вероятно, меньше года назад, я укусил пулю и начал писать код «правильным» способом. Обозначения исчезли, мои имена более наглядны, и (что лучше всего) у меня нет проблем с просмотром кода и знанием имени / контекста, с каким типом переменной я работаю, и нет также двусмысленности в понимании того, что переменная относится к. Я говорю, отпустите, вы не пропустите.