What does “o” mean as a variable prefix?

痞子三分冷 提交于 2019-12-23 06:58:59

问题


in oCn? What is the rule?

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

I found that type of naming in this article http://msdn.microsoft.com/en-us/magazine/cc163799.aspx


回答1:


An entirely obsolete way of saying that "Cn" is an *o*bject.




回答2:


I am afraid that it is a remainder of some hungarian dialect notation for an object.

In C# and .NET I consider this useless.

EDIT By the way I consider Hungarian notation containing type and/ore scope information useless in C#. I do like Apps Hungarian notation




回答3:


In this case, "o" means object. It's an attempt at using the "systems" variation of hungarian notation.

There are two types of hungarian: Systems and Apps. Systems uses a prefix to identify the type of data stored. For example, the "i" in iCounter would indicate that the variable was an integer.

Apps hungarian took a completely different approach and specifies that the prefix should indicate the purpose of the data. For example, the "rw" in rwPosition would mean row.

The windows api used Systems hungarian. This led to a large number of other programmers also using it. The unfortunate aspect is that when changes were made to the api, they kept the old variable names even when the actual data type changed. This led to large amounts of confusion as to what data type a parameter to a given API function should be passed. Especially around various handles.

In the .Net coding guidelines, MS explicitly states that hungarian shouldn't be used. The reality is that they are talking about "Systems" hungarian; which I 100% agree with. "Apps" hungarian on the other hand has a ton of uses as you are describing the data, not the type.

At the end of the day just remove the "o". It adds nothing to the program.

Oh, and for interesting reading, check out Joel's take on this at: http://www.joelonsoftware.com/articles/Wrong.html




回答4:


It probably means object like in some complex type that does not fit well with the same (ridiculous) convention that names strings strMyString and ints iMyInt etc.




回答5:


o is for object,

it's a, not very usefull, convention where by the type of the variable was incuded in the name, so a string was strWhatever. sometimes i even saw obj, i.e. objCn




回答6:


As @Humberto suggested, appears to be the developer using Hungarian Notation.




回答7:


When I started working as a programmer 10 years ago, the compagny I worked for was using a similar naming convention. I can't remember what is the convention name but I do remember that all the object instances had the "o" prefix, standing for Object.




回答8:


This "rule" comes directly from How To Write Unmaintainable Code:

o_apple obj_apple

Use an "o" or "obj" prefix for each instance of the class to show that you're thinking of the big, polymorphic picture.



来源:https://stackoverflow.com/questions/5096453/what-does-o-mean-as-a-variable-prefix

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!