What do you think?
-
Rocky Moore wrote:
Do you use/like the "_" to prefix private members? I personal hate variables prefixed with with _underscores _as _it _can _make _reading _code() _a _pain! In the old days of Assembler and some C code, we lived with it all the time, but I had hoped to never see them again. Now much of the code released by MS has private members prefixed. So, what you think?
I do in my .NET code. All my class member variables are _ prefixed. Of course most of the time, I access them via Properties rather than directly using the variable. I can't remembered why I moved to _ prefix. It was either because FxCop whined about it or because of some VB issue. In C++, I used m_ so the _prefix is kind of keeping up a long tradition.
Michael CP Blog [^] Development Blog [^]
Yeah, back in C/C++ I used m_ with along with hungarian notation until 2001 when I moved to .NET and documentation said in the new world we would drop prefixes. For a while I wondered how I would survive without them, but now there is no way to go back :)
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Ready for Internet TV?
-
I use '_' as a suffix for private member data (which means either all member data of a class or none of it) in C++. However, the rest of the naming is camel-case (capitalized for functions and classes):
class SampleClass { public: int SomeMethod() const; private: int aDataMember_; };
Curious, why would you? The only value I have seen anyone mention is for intellisense, so it groups all the local variables together. Is there another reason to not just use a variable name with any extentions?
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Ready for Internet TV?
-
Well I like using some prefix. either 'm_' or just the '_'. With C++ for example you can use the 'this' keyword to differentiate but i find it more annoying and confusing to read code this way as I'm sure many programmers do.
Well, I am in the camp of those that think "this.myDatabase" seems pretty clear ;)
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Ready for Internet TV?
-
Curious, why would you? The only value I have seen anyone mention is for intellisense, so it groups all the local variables together. Is there another reason to not just use a variable name with any extentions?
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Ready for Internet TV?
So that there's a concrete reminder of which names are class members in methods, I guess. Habit as well :-) It works for me, anyway.
-
I appear to be in the minority here but I *always* use the underscore to prefix private members. I do this for 2 reasons: 1.) As noted by another commentor, I consider the m_ wholly antiquated and sorely reminiscent of old school VB 2.) whenever I write a new class, especially in something like a data layer, I name my members the same as my field names in my database, but of course I have Properties also and then should also have the same name, so I end up with a simple _fieldName notation. It makes for eacy copy & paste. I'm right, that is all ;)
lotuspro wrote:
I consider the m_ wholly antiquated and sorely reminiscent of old school VB
Well, if you started in Assembler or C, you would consdier the "_" wholly antiquated as we put up with those things for years. The "m_" prefix was considered a relief :)
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Ready for Internet TV?
-
Yeah, think of how many times you instantly typed "m_" ;) I know for me it happened a lot ;)
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Ready for Internet TV?
-
For members: itsDoc For arguements: theDoc For locals: aOK = false; while( ! aOK ) { : : aOK = true; } return aOK;
Beware of programmers who carry screwdrivers - XTalk
the real r2d2 wrote:
aOK = false
:) Mine is usually "isOkay" ;)
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Ready for Internet TV?
-
Sorry, but I don't take such an elitist view. I am all for new programmers learning, and code excerpts may not always be in the IDE. In addition, code tends to live a long time. You can't always count on the IDE being effective. Look at how MS screwed up the IDE from VB6 to VB.NET. After over 6 years of working with .NET, the IDE is starting to get back to being as useful as it was in 1998. I think how you notate your variables is perfectly fine. I choose to do mine the way I do for specific reasons. I am not likely to change just because Microsoft says so. JD Waleska, GA
MSBassSinger wrote:
not likely to change just because Microsoft says so
Which is the point I was making initially although I wasn't explicit about it. IF you decide to enact a coding standard, there should be a better reason than 'somebody else is doing it that way', and MS sample code is notorious for being wrong and offensive in many ways - weird naming schemes being only a minor annoyance. I may take an elitist view sometimes, and I agree that code should be easily readable by different people, but one thing I learned managing (baby-sitting) teenagers when I was a retail manager, is that if you coddle them, they will eventually be worthless and you will be doing the job you hired them for. Indicating the data type at every possible invocation of a variable name is like telling someone every day where to find the toilet brush. The problem can be overcome by individuals applying their intelligence, therefore it should be. As in, "I told you it was a private Int32, look... right there, in the code that is right in front of your face..." In weakly-typed languages like javascript, I'll make an exception - the prefixes are helpful (although they still mean nothing). I've been lookin at code for 20 years, and variable prefixes have always annoyed me, even when we didn't have intellisense. Occasionally, you see things like this: private string strValue; private int intValue; You see this all the time in sample code... without the prefix, you have two variables with the same name. In sample code this is fine, especially if you are comparing the behavior of different types. In the sample case, the meaning of the variable is not important, so the generic term "value" applies, and the important issue becomes the type itself. When you have a situation like that, indicating the type is helpful, but I wouldn't do it with every variable name always and forever, only when needed. This is the only situation I can think of for that, where two variables actually represent the same thing, but using different data types... you see this in graphics sometimes: float viewX, viewY, viewZ; // (-1.0 < x|y < 1.0), (Z = +/- any depth) int screenX, screenY, screenZ; // (0 < x < 1024), (0 < y < 768), (z > 0) (again though, I don't indicate the type, only the important difference, one is in the viewport and one is in the screen, then I indicate the acceptable ranges in a comment, and I never have to say anything else about these variables ever again) I wouldn't
-
Well, since John Simmons got his new TV, he probably will be missing for about two days, but for the rest of you: It has been around two years I think since I have asked this question and I am curious as to if people have changed their minds. Do you use/like the "_" to prefix private members? I personal hate variables prefixed with with _underscores _as _it _can _make _reading _code() _a _pain! In the old days of Assembler and some C code, we lived with it all the time, but I had hoped to never see them again. Now much of the code released by MS has private members prefixed. So, what you think?
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Microsoft doing it again!
I write code in both VB.NET and C#, and I used to be mainly a VB 6 programmer. Personally if I am declaring a private member / variable I like to prefix it with just the "m" as in mPrivate. I hate using and/or reading the the underscore when m is not only easier on the eyes, it is easier to type, and therefore takes less overall time to write the code. :)
DB_Cooper1950 "Life is like a box of..."
-
Well, since John Simmons got his new TV, he probably will be missing for about two days, but for the rest of you: It has been around two years I think since I have asked this question and I am curious as to if people have changed their minds. Do you use/like the "_" to prefix private members? I personal hate variables prefixed with with _underscores _as _it _can _make _reading _code() _a _pain! In the old days of Assembler and some C code, we lived with it all the time, but I had hoped to never see them again. Now much of the code released by MS has private members prefixed. So, what you think?
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Microsoft doing it again!
-
Well, since John Simmons got his new TV, he probably will be missing for about two days, but for the rest of you: It has been around two years I think since I have asked this question and I am curious as to if people have changed their minds. Do you use/like the "_" to prefix private members? I personal hate variables prefixed with with _underscores _as _it _can _make _reading _code() _a _pain! In the old days of Assembler and some C code, we lived with it all the time, but I had hoped to never see them again. Now much of the code released by MS has private members prefixed. So, what you think?
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Microsoft doing it again!
Maybe it's an annoying thing to review the codes which are full of the underscores. But it derived from the C and assembly languages, unfortunatelly, our senior leader came from this era, just to ingratiate ourself with the manager. So we must write the codes like this. :-D:-D:-D:-D
-
Maybe it's an annoying thing to review the codes which are full of the underscores. But it derived from the C and assembly languages, unfortunatelly, our senior leader came from this era, just to ingratiate ourself with the manager. So we must write the codes like this. :-D:-D:-D:-D
Well, I am from that same era and had enough of them more than a decade ago :) It is important though to code by the standards of a company where you work or in the lack of a standard being implemented, by the standards used in the large majority of work (which sometimes is not excatly fun ;) )
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Ready for Internet TV?
-
Can't stand _them. Sorry to butt in on this, but this is one thing I truly hate. Isn't this part of or all of the Hungarian notation? Which has historical roots in early programming?
-
Well, since John Simmons got his new TV, he probably will be missing for about two days, but for the rest of you: It has been around two years I think since I have asked this question and I am curious as to if people have changed their minds. Do you use/like the "_" to prefix private members? I personal hate variables prefixed with with _underscores _as _it _can _make _reading _code() _a _pain! In the old days of Assembler and some C code, we lived with it all the time, but I had hoped to never see them again. Now much of the code released by MS has private members prefixed. So, what you think?
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Microsoft doing it again!
One take on this question could be "m_" vs "_". Either is good as they distinguish the scope/lifetime at a glance. Some people express a loathing for "m_", as its old hat. C++ & vb6 typically used some m_ or mvar or similar prefix. I was happy with that. Why change it? The point that many raised is either prefix is fine, so long as its consistent? So why oh why did it have to change?
-
Well, since John Simmons got his new TV, he probably will be missing for about two days, but for the rest of you: It has been around two years I think since I have asked this question and I am curious as to if people have changed their minds. Do you use/like the "_" to prefix private members? I personal hate variables prefixed with with _underscores _as _it _can _make _reading _code() _a _pain! In the old days of Assembler and some C code, we lived with it all the time, but I had hoped to never see them again. Now much of the code released by MS has private members prefixed. So, what you think?
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Microsoft doing it again!
-
I Like them! :rose: Why? I'm a VB.NET developer... to write none language dependent code is like coding to interfaces instead of implementations ;P What do I mean? Well to easily convert / write / use code from BOTH c# and VB.Net "_" simplifies a great bit... Mainly because vb.net is not case sensitive. I find the "_" char the least disturbing in reading / skimming through code. The m_ prefix i dislike the m_ prefix as I consider it outdated; as far as I know the m stands for member, and if I want to now a class member I take a look in the Object browser, or use the "Me" (this in c#) ex: Me._myFieldName therefore in my opinion -> m_ adds "nothing". As the previous post states, the _ is used for private members and therefore encapsulated by the class and you work with the public properties / methods instead i.o.w not that big of a problem (in my humble opinion) in contrast to language independence.
Hi. I personally use mPrefix, no underscore, is that wrong somehow?
-
Hi. I personally use mPrefix, no underscore, is that wrong somehow?
If it works for you then it's not wrong for you (but perhaps for the wider audience). Personally as stated before I think the m adds nothing. consider mAge _age with how reading letter work. The human mind skims quickly through text not reading character by character but rather ses the "image" of the word; therefore the m also disturbs the quick skimming and readability of the code. For more info on the subject see: http://www.microsoft.com/typography/ctfonts/WordRecognition.aspx#m1 Finally A good source (with comments, arguments) for naming convention: http://www.irritatedvowel.com/Programming/Standards.aspx
-
If it works for you then it's not wrong for you (but perhaps for the wider audience). Personally as stated before I think the m adds nothing. consider mAge _age with how reading letter work. The human mind skims quickly through text not reading character by character but rather ses the "image" of the word; therefore the m also disturbs the quick skimming and readability of the code. For more info on the subject see: http://www.microsoft.com/typography/ctfonts/WordRecognition.aspx#m1 Finally A good source (with comments, arguments) for naming convention: http://www.irritatedvowel.com/Programming/Standards.aspx
Thanks Jon, I do believe you are correct, I think I'll change my ways.
-
Well, since John Simmons got his new TV, he probably will be missing for about two days, but for the rest of you: It has been around two years I think since I have asked this question and I am curious as to if people have changed their minds. Do you use/like the "_" to prefix private members? I personal hate variables prefixed with with _underscores _as _it _can _make _reading _code() _a _pain! In the old days of Assembler and some C code, we lived with it all the time, but I had hoped to never see them again. Now much of the code released by MS has private members prefixed. So, what you think?
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Microsoft doing it again!
Personally I hate prefixes of any kind - one of my pet hates. I have seen code that mistakenly uses prefixes for local variable - an even greater pet hate. I prefer to use this.localVariable. At least that way you are guaranteed that the variable is a member variable.
-
Well, since John Simmons got his new TV, he probably will be missing for about two days, but for the rest of you: It has been around two years I think since I have asked this question and I am curious as to if people have changed their minds. Do you use/like the "_" to prefix private members? I personal hate variables prefixed with with _underscores _as _it _can _make _reading _code() _a _pain! In the old days of Assembler and some C code, we lived with it all the time, but I had hoped to never see them again. Now much of the code released by MS has private members prefixed. So, what you think?
Rocky <>< Latest Code Blog Post: SQL Server Express Warnings & Tips Latest Tech Blog Post: Microsoft doing it again!
When my company started working with a third-party C# library a year or two ago, we noticed underscores for all the private fields. Some of our developers started doing the same thing and while I was a little skeptical at first, I decided to give it a try. It didn't take me very long to notice some really nice benefits to using them and now I don't think I will ever go back. In fact, we have since made it a "highly suggested" guideline for our developers, with nothing but praise for it. Here are some of the niceties I can think of: 1. Immediate differentiation between member fields and local/parameter variables. 2. As a result of #1 above, there is never clutter or confusion by needing to qualify member fields with the 'this' (or 'Me') keyword when setting them with local/parameter variables of the same name (typically done in constructors). 3. All private fields get grouped in Intellisense. With all that being said, I don't really understand how it makes reading code a pain. I think it does maybe take a little getting used to, but none of our developers have mentioned any problems with readability. Quite the contrary. Terry