Steve Wellens

Programming in the .Net environment

Sponsors

Links

November 2009 - Posts

Can the C# ‘var’ Keyword be Misused?

More and more often I've been seeing C# code like this:

var Data = GetData();

What on earth does GetData() return? This code is not as maintainable as it could be and is not as maintainable as it should be.

Doesn't explicitly declaring the variable type make the code more readable, understandable and ultimately more maintainable?

DataTable Data = GetData();

Ahhh, GetData() returns a DataTable.

I know that var has uses but I wish it would have been named something much longer because typing 'var' is too easy. Perhaps it should have been named AutomaticTypeVar or even AutoVar to reduce the lazy misuse.

Just my 2 cents.

Steve Wellens

[Update]

A user on the Asp.Net forums was kind enough to provide this quote and link:

"However, the use of var does have at least the potential to make your code more difficult to understand for other developers. For that reason, the C# documentation generally uses var only when it is required."

http://msdn.microsoft.com/en-us/library/bb384061.aspx 

 [Update 2]

This list shows a progression of  zero semantic information to the maximum semantic information:

var x = functionA();           // worst, no one should like this
var x = GetIndexes();          // better
var Indexes = GetIndexes();    // even better
int[] Indexes = GetIndexes();  // best, you don't need to guess at the type returned 

 

 

Posted: Nov 19 2009, 07:52 AM by SGWellens | with 28 comment(s)
Filed under: , ,
More Posts