Что означает "o" как префикс переменной?

в oCn? Каково правило?

using(SqlConnection oCn = new SqlConnection(
        "Server=(local);Database=Pubs;User ID=TestUser1;Password=foo1;")) {
        oCn.Open();
        ...
    }

Я нашел этот тип именования в этой статье http://msdn.microsoft.com/en-us/magazine/cc163799.aspx

Ответ 1

Совершенно устаревший способ сказать, что "Cn" является * o * bject.

Ответ 3

В этом случае "o" означает объект. Это попытка использовать "системные" вариации венгерской нотации.

Существует два типа венгерских: Системы и приложения. Системы используют префикс для идентификации типа хранимых данных. Например, "i" в iCounter указывает, что переменная была целым числом.

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

В окнах api используются системы венгерские. Это привело к тому, что многие другие программисты также использовали его. Несчастливый аспект заключается в том, что при внесении изменений в api они сохраняли старые имена переменных даже тогда, когда изменялся фактический тип данных. Это привело к большому количеству путаницы в отношении того, какой тип данных должен передаваться параметру для данной функции API. Особенно вокруг разных ручек.

В правилах кодирования .Net MS явно заявляет, что венгерский не должен использоваться. Реальность такова, что они говорят о "Системе" венгерской; с которым я на 100% согласен. "Приложения" венгерский, с другой стороны, имеет массу применений, поскольку вы описываете данные, а не тип.

В конце дня просто удалите "o". Он ничего не добавляет к программе.

О, и для интересного чтения, проверьте, чтобы Джоэл взял это на: http://www.joelonsoftware.com/articles/Wrong.html

Ответ 4

Вероятно, это означает object как в некотором сложном типе, который не подходит хорошо с тем же (смешным) соглашением, которое называет строки strMyString и ints iMyInt и т.д.

Ответ 5

o для объекта,

это a, не очень полезное соглашение, где по типу переменной было указано в имени, поэтому строка была strWhhatever. иногда я даже видел obj, т.е. objCn

Ответ 7

Когда я начал работать программистом 10 лет назад, работа, в которой я работал, использовала аналогичное соглашение об именах. Я не могу вспомнить, что такое имя соглашения, но я помню, что все экземпляры объектов имели префикс "o", стоящий для Object.

Ответ 8

Это "правило" происходит непосредственно из "Как писать неподдерживаемый код" :

o_apple obj_apple

Используйте префикс "o" или "obj" для каждого экземпляра класса, чтобы показать, что вы думаете о большой, полиморфной картине.