开发者

What does "o" mean as a variable prefix?

开发者 https://www.devze.com 2023-02-13 05:03 出处:网络
in oCn? What is the rule? using(SqlConnection oCn = new SqlConnection( \"Server=(local);Database=Pubs;User ID=TestUser1;Password=foo1;\")) {

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


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


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


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


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.


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.


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


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


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号