Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I *always* favour implictly typed local variables in C# 3.0?

Resharper certainly thinks so, and out of the box it will nag you to convert

Dooberry dooberry = new Dooberry(); 

to

var dooberry = new Dooberry(); 

Is that really considered the best style?

like image 421
serg10 Avatar asked Aug 19 '08 21:08

serg10


People also ask

What is implicitly typed local variable?

Implicitly typed variables are those variables which are declared without specifying the . NET type explicitly. In implicitly typed variable, the type of the variable is automatically deduced at compile time by the compiler from the value used to initialize the variable.

What is implicit variable explain with example how implicit variables are declared?

Implicit variables are variables that you do not define. These variables are automatically provided by the framework. Some implicit variables are not associated with any other variables, while other implicit variables are valid only when they are associated with a variable that you declare.

What keyword is used to implicitly define a variable?

C# var keyword is used to declare implicit type variables.

Are local variables more efficient?

Local variables can be faster because the optimizer can store them in registers. In C++ in general, you can't make a statement about the performance difference.


1 Answers

It's of course a matter of style, but I agree with Dare: C# 3.0 Implicit Type Declarations: To var or not to var?. I think using var instead of an explicit type makes your code less readable.In the following code:

var result = GetUserID(); 

What is result? An int, a string, a GUID? Yes, it matters, and no, I shouldn't have to dig through the code to know. It's especially annoying in code samples.

Jeff wrote a post on this, saying he favors var. But that guy's crazy!

I'm seeing a pattern for stackoverflow success: dig up old CodingHorror posts and (Jeopardy style) phrase them in terms of a question.

like image 85
Jon Galloway Avatar answered Sep 20 '22 21:09

Jon Galloway