473,325 Members | 2,872 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,325 software developers and data experts.

FxCop

I am getting a messages that I am getting. Maybe someone can help
explain some of these.
Parameter names should use complete words

Type: ParameterNamesShouldHaveCompleteWords

Cause: A parameter in a public or protected method has a parameter that
meets one of the following criteria:

Rule Description
By convention, parameter names do not use abbreviations or Hungarian
notation. Naming conventions reduce the learning curve required for new
software libraries because, for very specialized types, the intended
usage is apparent from the type name. Also, naming conventions provide
a common look and feel for libraries that target the common language
runtime.

My question about this code is:

1) If I remember correct there are lots of APIs (Win32, VB etc) that
have Hungarian notation right?

2) When writing code, Hungarian notation is used to help the person
writing/reading the code to understand the type of the variable. If
you have a function that takes parameters of (Name, Value, File) then
for the entire procedure, you will be using a variable named "Value",
unless you were to first create another variable "iValue" and assign
the parameters to the new variables.

Does this make sense?

Jul 21 '05 #1
5 2913
The new Microsoft standards discourage Hungarian notation. Basically, the
reasoning is that modern IDE's have such good code insight that it is
superfluous to indicate a variables type in it's name. You can just hover
over it for a tooltip giving you that and more. So yes, whilst much old MS
code has Hungarian notation, the latest stuff doesn't (at least .NET
doesn't).

In addition, there's one other slight advantage to not using Hungarian
notation: when you change a variables type (e.g. from int to long) you don't
have to go and search for all instances of the variable to change it to the
new name. Admittedly this isn't a huge advantage with all the refactoring
tools around.

--
Sean Hederman

http://codingsanity.blogspot.com

"cmay" <cm**@walshgroup.com> wrote in message
news:11**********************@c13g2000cwb.googlegr oups.com...
I am getting a messages that I am getting. Maybe someone can help
explain some of these.
Parameter names should use complete words

Type: ParameterNamesShouldHaveCompleteWords

Cause: A parameter in a public or protected method has a parameter that
meets one of the following criteria:

Rule Description
By convention, parameter names do not use abbreviations or Hungarian
notation. Naming conventions reduce the learning curve required for new
software libraries because, for very specialized types, the intended
usage is apparent from the type name. Also, naming conventions provide
a common look and feel for libraries that target the common language
runtime.

My question about this code is:

1) If I remember correct there are lots of APIs (Win32, VB etc) that
have Hungarian notation right?

2) When writing code, Hungarian notation is used to help the person
writing/reading the code to understand the type of the variable. If
you have a function that takes parameters of (Name, Value, File) then
for the entire procedure, you will be using a variable named "Value",
unless you were to first create another variable "iValue" and assign
the parameters to the new variables.

Does this make sense?

Jul 21 '05 #2
Sean,
Thanks for the info.

Does the discouragement of Hungarian notaion extend to normal variables?

In other words is:
Dim iValue as integer
supposed to be
Dim Value as integer

Do you know if Microsoft have a doc out there explaining their standards as
it pertains to this?

Thanks again

Chris

"Sean Hederman" wrote:
The new Microsoft standards discourage Hungarian notation. Basically, the
reasoning is that modern IDE's have such good code insight that it is
superfluous to indicate a variables type in it's name. You can just hover
over it for a tooltip giving you that and more. So yes, whilst much old MS
code has Hungarian notation, the latest stuff doesn't (at least .NET
doesn't).

In addition, there's one other slight advantage to not using Hungarian
notation: when you change a variables type (e.g. from int to long) you don't
have to go and search for all instances of the variable to change it to the
new name. Admittedly this isn't a huge advantage with all the refactoring
tools around.

--
Sean Hederman

http://codingsanity.blogspot.com

"cmay" <cm**@walshgroup.com> wrote in message
news:11**********************@c13g2000cwb.googlegr oups.com...
I am getting a messages that I am getting. Maybe someone can help
explain some of these.
Parameter names should use complete words

Type: ParameterNamesShouldHaveCompleteWords

Cause: A parameter in a public or protected method has a parameter that
meets one of the following criteria:

Rule Description
By convention, parameter names do not use abbreviations or Hungarian
notation. Naming conventions reduce the learning curve required for new
software libraries because, for very specialized types, the intended
usage is apparent from the type name. Also, naming conventions provide
a common look and feel for libraries that target the common language
runtime.

My question about this code is:

1) If I remember correct there are lots of APIs (Win32, VB etc) that
have Hungarian notation right?

2) When writing code, Hungarian notation is used to help the person
writing/reading the code to understand the type of the variable. If
you have a function that takes parameters of (Name, Value, File) then
for the entire procedure, you will be using a variable named "Value",
unless you were to first create another variable "iValue" and assign
the parameters to the new variables.

Does this make sense?


Jul 21 '05 #3
I have not seen anything that defines what the inside of a method looks
like. Microsoft only wants to standardize the interface that external
system see to ensure continuity.

Here are some naming guidelines.
http://whidbey.msdn.microsoft.com/li...aa72955e80.asp

"cmay" <cm**@discussions.microsoft.com> wrote in message
news:80**********************************@microsof t.com...
Sean,
Thanks for the info.

Does the discouragement of Hungarian notaion extend to normal variables?

In other words is:
Dim iValue as integer
supposed to be
Dim Value as integer

Do you know if Microsoft have a doc out there explaining their standards as it pertains to this?

Thanks again

Chris

"Sean Hederman" wrote:
The new Microsoft standards discourage Hungarian notation. Basically, the reasoning is that modern IDE's have such good code insight that it is
superfluous to indicate a variables type in it's name. You can just hover over it for a tooltip giving you that and more. So yes, whilst much old MS code has Hungarian notation, the latest stuff doesn't (at least .NET
doesn't).

In addition, there's one other slight advantage to not using Hungarian
notation: when you change a variables type (e.g. from int to long) you don't have to go and search for all instances of the variable to change it to the new name. Admittedly this isn't a huge advantage with all the refactoring tools around.

--
Sean Hederman

http://codingsanity.blogspot.com

"cmay" <cm**@walshgroup.com> wrote in message
news:11**********************@c13g2000cwb.googlegr oups.com...
I am getting a messages that I am getting. Maybe someone can help
explain some of these.
Parameter names should use complete words

Type: ParameterNamesShouldHaveCompleteWords

Cause: A parameter in a public or protected method has a parameter that meets one of the following criteria:

Rule Description
By convention, parameter names do not use abbreviations or Hungarian
notation. Naming conventions reduce the learning curve required for new software libraries because, for very specialized types, the intended
usage is apparent from the type name. Also, naming conventions provide
a common look and feel for libraries that target the common language
runtime.

My question about this code is:

1) If I remember correct there are lots of APIs (Win32, VB etc) that
have Hungarian notation right?

2) When writing code, Hungarian notation is used to help the person
writing/reading the code to understand the type of the variable. If
you have a function that takes parameters of (Name, Value, File) then
for the entire procedure, you will be using a variable named "Value",
unless you were to first create another variable "iValue" and assign
the parameters to the new variables.

Does this make sense?


Jul 21 '05 #4
Yep, I have found however that having one naming standard for your
parameters and one for your variables is quite a pain, so I've tended to
follow the same scheme in naming my vars. Personally, I use pascalCase for
my params and vars, and a leading underscore for class fields. The only real
reason for that is to allow me to use the same name for a param and a field:

public MyClass {
int _age;

public Class(int age) {
_age = age;
}
}

"Peter Rilling" <pe***@nospam.rilling.net> wrote in message
news:eW****************@TK2MSFTNGP14.phx.gbl...
I have not seen anything that defines what the inside of a method looks
like. Microsoft only wants to standardize the interface that external
system see to ensure continuity.

Here are some naming guidelines.
http://whidbey.msdn.microsoft.com/li...aa72955e80.asp

"cmay" <cm**@discussions.microsoft.com> wrote in message
news:80**********************************@microsof t.com...
Sean,
Thanks for the info.

Does the discouragement of Hungarian notaion extend to normal variables?

In other words is:
Dim iValue as integer
supposed to be
Dim Value as integer

Do you know if Microsoft have a doc out there explaining their standards

as
it pertains to this?

Thanks again

Chris

"Sean Hederman" wrote:
> The new Microsoft standards discourage Hungarian notation. Basically, the > reasoning is that modern IDE's have such good code insight that it is
> superfluous to indicate a variables type in it's name. You can just hover > over it for a tooltip giving you that and more. So yes, whilst much old MS > code has Hungarian notation, the latest stuff doesn't (at least .NET
> doesn't).
>
> In addition, there's one other slight advantage to not using Hungarian
> notation: when you change a variables type (e.g. from int to long) you don't > have to go and search for all instances of the variable to change it to the > new name. Admittedly this isn't a huge advantage with all the refactoring > tools around.
>
> --
> Sean Hederman
>
> http://codingsanity.blogspot.com
>
> "cmay" <cm**@walshgroup.com> wrote in message
> news:11**********************@c13g2000cwb.googlegr oups.com...
> >I am getting a messages that I am getting. Maybe someone can help
> > explain some of these.
> >
> >
> > Parameter names should use complete words
> >
> > Type: ParameterNamesShouldHaveCompleteWords
> >
> > Cause: A parameter in a public or protected method has a parameter that > > meets one of the following criteria:
> >
> > Rule Description
> > By convention, parameter names do not use abbreviations or Hungarian
> > notation. Naming conventions reduce the learning curve required for new > > software libraries because, for very specialized types, the intended
> > usage is apparent from the type name. Also, naming conventions
> > provide
> > a common look and feel for libraries that target the common language
> > runtime.
> >
> >
> >
> > My question about this code is:
> >
> > 1) If I remember correct there are lots of APIs (Win32, VB etc) that
> > have Hungarian notation right?
> >
> > 2) When writing code, Hungarian notation is used to help the person
> > writing/reading the code to understand the type of the variable. If
> > you have a function that takes parameters of (Name, Value, File) then
> > for the entire procedure, you will be using a variable named "Value",
> > unless you were to first create another variable "iValue" and assign
> > the parameters to the new variables.
> >
> > Does this make sense?
> >
>
>
>


Jul 21 '05 #5
"Sean Hederman" <us***@blogentry.com> wrote:
Yep, I have found however that having one naming standard for your
parameters and one for your variables is quite a pain, so I've tended to
follow the same scheme in naming my vars. Personally, I use pascalCase for
my params and vars, and a leading underscore for class fields. The only real
reason for that is to allow me to use the same name for a param and a field:

public MyClass {
int _age;

public Class(int age) {
_age = age;
}
}

In more recent years some of the C++ community moved to the
trailing underscore as library vendors have had the habit of
using the underscore prefix for library
specific/non-portable variables, function names and macros.
So in some books from the 1990s you'll see:

m_age (short for member variable "age")

which later transforms to

_age (lazy typist I guess)

to

age_ (avoiding any potential interference with
vendor libraries).

You really don't need it as you can write:

this.age = age;

however the lazy typist in me still prefers

age_ = age

plus I think there is some value to identifying an instance
variable at a glance without being forced to write
"this.age" everytime (Which begs the question: should you
distinguish between instance and class variables
("static")?). However seeing code like

age_.ToString()

may take some getting used to.
'Any fool can write code that a computer can understand.
Good programmers write code that humans can understand.'
Martin Fowler,
'Refactoring: improving the design of existing code', p.15
Jul 21 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Crocker Data Processing | last post by:
Hi. I've written a bunch of custom rules for FxCop version 1.23, and today happened to download and install (separately) the new FxCop 1.321. Arrgghh ! The new introspection stuff is a lot...
5
by: Chua Wen Ching | last post by:
I had use fxcop to check my code. I had 1 confusion here. I would normally call a method by this way in my IAnimal: Example: public void CallFuncA(ushort port); But fxcop says i need to...
0
by: Chua Wen Ching | last post by:
Hi there, I am super confuse on this recommendation by FxCop. 1) http://www.gotdotnet.com/team/fxcop/docs/rules/UsageRules/OperatorEqualsOverridesRequireEqualsOverridel.html First of all,...
3
by: Rasmus | last post by:
I VS 2005 beta 2 i have a solution with - a number of classes - a website - a httphandler - a http module I want to run fxcop on my class files - but cant find out how to enable it. I've...
8
by: hansiman | last post by:
Just beginning using FxCop in my asp.net projects... I get a lot of error messages under the header: AvoidUnusedParameters for funtions and routines lik: Sub isUserAuthenticated(ByVal...
3
by: Velvet | last post by:
I ran FxCop on one of the components for my web site and the security rules what me to add " tags like the ones listed below: This breaks my ASP.NET application. So my question is,...
4
by: Bruce One | last post by:
Given a project with some .cs files, Is there a way to block some of these files to be read by FxCop ?
10
by: Karsten Schramm | last post by:
I would write BaseClass var; ..... if(var is DerivedClass) { DerivedClass derivedVar = (DerivedClass)var; DoSomething(derivedVar); }
5
by: Peter Ritchie [C# MVP] | last post by:
I've purposely been ignoring a CA2122 warning in some C++ interop code I've been working on for quite some time. I've just recently had the cycles to investigate the warning. The warning message...
3
by: AlexS | last post by:
When I implement Dispose pattern in object implementing IDisposable, current fxcop recommends: Ensure that Wrapper.Dispose():Void is declared as public and sealed. However, if I do as it asks,...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.