
Var is an implicit type. It aliases any type in the C# programming language. The aliased type is determined by the C# compiler. This has no performance penalty. Var is excellent syntactic sugar. It sometimes makes programs harder to understand.
This C# article provides examples for the var keyword. Var is an implict type.
First, we look at some examples of using the var keyword in the C# language. Here is a code example of the var keyword being used in three different contexts. You need a fairly recent version of the .NET Framework to compile this program.
Program that uses var keyword [C#]
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static void Main()
{
// 1.
// var is always available, not just in Linq.
var cat = new List<int>
{
1,
2,
7,
9
};
// Hover over the 'var' keyword and Visual Studio
// will tell you what it really is.
// 2.
// This example display odd numbers.
// Returns IEnumerable<T> (where T is int).
var items = from item in cat
where (item % 2 == 1)
select item;
// 3.
// Each item is an int.
foreach (var item in items)
{
Console.WriteLine(item);
}
// The previous loop is the same as this:
foreach (int item in items)
{
Console.WriteLine(item);
}
}
}
Output
1
7
9
1
7
9
Description. This code sample uses the var keyword and the List type. The variable is known to be a List. You can hover over the var keyword and Visual Studio will tell you that it is a List. Next, we see the var items query. It returns IEnumerable<int>. You can use the foreach-loop with var. You can use the var-typed variable like any other variable.
Tip: The var keyword can represent any type that can be determined at compile-time. It is precisely equivalent after compilation.

The C# language is strongly-typed. This means that memory is labeled by what kind of object it contains. The language uses strong types to enforce code quality. Variables are both memory and also type annotations. It raises errors and warnings because it wants your code to work properly. It makes inferences about your code and can deduce the type of a variable.
Compile-Time ErrorBrevity of the language. The C# programming language is wordy. Programmers don't like entering text all day. Languages like C# and Java sometimes have very long keywords. You can reduce this with var. Var allows a three-letter type to be used.
Var limitations. Here we look at an interesting limitation of the var keyword. You can't assign a var to null. This will result in the CS0825 warning. You also can't use var as a parameter type or a return value of a method.

Continuing on, we look at the internal implementation and behavior of the var keyword in the C# language. IL is what C# code is turned into. You can see it with a utility called IL Disassembler provided with Visual Studio. There are two int32 values in the IL below.
IL Disassembler Tutorial Intermediate LanguageMethod using var [C#]
public int ReturnValue()
{
var a = 5;
int b = 5;
return a + b;
}
IL of the method
.method public hidebysig instance int32 ReturnValue() cil managed
{
// Code size 9 (0x9)
.maxstack 1
.locals init ([0] int32 result,
[1] int32 CS$1$0000)
IL_0000: nop
IL_0001: ldc.i4.5
IL_0002: stloc.0
IL_0003: ldloc.0
IL_0004: stloc.1
IL_0005: br.s IL_0007
IL_0007: ldloc.1
IL_0008: ret
} // end of method VarKW::ReturnValue
Description. The int declaration is exactly the same as the var declaration in the IL. So the execution engine doesn't know that you used one or the other. They are compiled to the same IL. The var keyword is equally fast as strong types like int or string.

One tip is to use var on generic types. The Dictionary type has verbose syntax: it uses a lot of brackets and letters and a comma. Some code becomes much easier to read when you use var. Var can even make code refactoring easier. Sometimes you won't need to change it when the type changes.
Var Dictionary ExampleNext, you can use var in a foreach-loop construct. This makes the loop syntax really simple. Simple often means easy to understand. Simple often means fewer bugs will accumulate with time.
Foreach Loop Examples
We saw how you can use the var keyword in the C# programming language. You find out what it stands for by hovering over it in Visual Studio. It has similarities to #define or typedef in C++. We use var for brevity. It makes the code easier to understand. The var keyword has equivalent performance. It does not affect runtime behavior.
Method Tips