在oCn?规则是什么?
using(SqlConnection oCn = new SqlConnection(
"Server=(local);Database=Pubs;User ID=TestUser1;Password=foo1;")) {
oCn.Open();
...
}
中找到了这种命名方式
答案 0 :(得分:50)
完全过时的说法“Cn”是* o *对象。
答案 1 :(得分:16)
我担心它是对象的某些hungarian dialect notation的剩余部分。
在C#和.NET中,我认为这没用。
编辑顺便提一下,我认为包含类型和/矿范围信息的匈牙利符号在C#中无用。 I do like Apps Hungarian notation
答案 2 :(得分:13)
在这种情况下,“o”表示对象。这是尝试使用匈牙利符号的“系统”变体。
匈牙利语有两种类型:Systems and Apps。系统使用前缀来标识存储的数据类型。例如,iCounter中的“i”表示变量是整数。
匈牙利应用程序采用了完全不同的方法,并指定前缀应指明数据的用途。例如,rwPosition中的“rw”表示行。
windows api使用了匈牙利语系统。这导致大量其他程序员也使用它。不幸的是,当对api进行更改时,即使实际数据类型发生更改,它们也会保留旧的变量名称。这导致了关于应该传递给定API函数的参数的数据类型的大量混淆。特别是各种手柄。
在.Net编码指南中,MS explicitly states that hungarian shouldn't be used。现实是,他们正在谈论匈牙利的“系统”;我100%同意。另一方面,“应用程序”匈牙利语在描述数据时有很多用途,而不是类型。
在一天结束时,只需删除“o”即可。它不会给程序增加任何东西。
哦,有趣的阅读,请查看Joel对此的看法:http://www.joelonsoftware.com/articles/Wrong.html
答案 3 :(得分:5)
这可能意味着object
类似于某些复杂类型,不适合用于命名字符串strMyString
和整数iMyInt
等的相同(荒谬)约定。
答案 4 :(得分:1)
o是对象,
这是一个非常有用的约定,其中变量的类型在名称中被包含,因此字符串是strWhatever。有时我甚至看到了obj,即objCn
答案 5 :(得分:1)
正如@Humberto建议的那样,似乎是使用Hungarian Notation的开发人员。
答案 6 :(得分:1)
10年前,当我开始作为程序员工作时,我所工作的compagny使用了类似的命名约定。我不记得什么是常规名称,但我记得所有对象实例都有“o”前缀,代表Object。
答案 7 :(得分:1)
此“规则”直接来自How To Write Unmaintainable Code:
o_apple obj_apple
为每个类的实例使用“o”或“obj”前缀,以表明您正在考虑大型的多态图片。