"o"表示什么是变量前缀?

joh*_*nny 14 c# naming

在oCn?规则是什么?

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

我在本文中找到了这种命名方式http://msdn.microsoft.com/en-us/magazine/cc163799.aspx

Hum*_*rto 50

一种完全过时的方式,说"Cn"是一个*o*bject.


Ern*_*rno 16

我担心这是一个匈牙利方言符号的剩余部分.

在C#和.NET中,我认为这没用.

编辑顺便提一下,我认为包含类型和/矿范围信息的匈牙利符号在C#中无用.我喜欢Apps匈牙利语符号


Not*_*tMe 13

在这种情况下,"o"表示对象.这是尝试使用匈牙利符号的"系统"变体.

匈牙利有两种类型:系统和应用程序.系统使用前缀来标识存储的数据类型.例如,iCounter中的"i"表示变量是整数.

匈牙利应用程序采用了完全不同的方法,并指定前缀应指明数据的目的.例如,rwPosition中的"rw"表示行.

windows api使用了匈牙利语系统.这导致大量其他程序员也使用它.不幸的是,当对api进行更改时,即使实际数据类型发生更改,它们也会保留旧的变量名称.这导致了关于应该传递给定API函数的参数的数据类型的大量混淆.特别是各种手柄周围.

在.Net编码指南中,MS明确指出不应使用匈牙利语.现实是,他们正在谈论匈牙利的"系统"; 我100%同意.另一方面,"应用程序"匈牙利语在描述数据时有很多用途,而不是类型.

在一天结束时,只需删除"o".它不会给程序增加任何东西.

哦,有趣的阅读,请查看Joel对此的看法:http://www.joelonsoftware.com/articles/Wrong.html


Kla*_*sen 5

它可能意味着object在一些复杂的类型中,不适合用于命名字符串strMyString和整数iMyInt等的相同(荒谬)约定.