var (C# Başvurusu)var (C# Reference)

Visual C# 3.0 içinde başlayarak, yöntem kapsamda bildirilen değişkenler örtük bir "type" olabilir var.Beginning in Visual C# 3.0, variables that are declared at method scope can have an implicit "type" var. Bir türü örtük olarak belirlenmiş yerel değişken alacağı yalnızca kendiniz türü bildirilen, ancak derleyicinin türü belirler kesin.An implicitly typed local variable is strongly typed just as if you had declared the type yourself, but the compiler determines the type. Aşağıdaki iki bildirimlerini i işlevsel olarak eşdeğerdir:The following two declarations of i are functionally equivalent:

var i = 10; // Implicitly typed.
int i = 10; // Explicitly typed.

Daha fazla bilgi için örtük olarak yazılan yerel değişkenler ve LINQ Sorgu işlemlerinde tür ilişkileri.For more information, see Implicitly Typed Local Variables and Type Relationships in LINQ Query Operations.

ÖrnekExample

Aşağıdaki örnek, iki sorgu ifadeleri gösterir.The following example shows two query expressions. İlk ifadede, kullanımını var izin verilir, ancak sorgu sonuç türü olarak açıkça belirtilebilir gerekli olmadığından bir IEnumerable<string>.In the first expression, the use of var is permitted but is not required, because the type of the query result can be stated explicitly as an IEnumerable<string>. Ancak, ikinci ifadede, var anonim türlerin koleksiyonunu olacak şekilde sonuç verir ve bu tür adı derleyici için dışında erişilemez.However, in the second expression, var allows the result to be a collection of anonymous types, and the name of that type is not accessible except to the compiler itself. Kullanım var sonucu için yeni bir sınıf oluşturma gereksinimini ortadan kaldırır.Use of var eliminates the requirement to create a new class for the result. Örnek # 2'de unutmayın foreach yineleme değişkeni item de dolaylı olarak yazılmalıdır.Note that in Example #2, the foreach iteration variable item must also be implicitly typed.

// Example #1: var is optional when
// the select clause specifies a string
string[] words = { "apple", "strawberry", "grape", "peach", "banana" };
var wordQuery = from word in words
                where word[0] == 'g'
                select word;

// Because each element in the sequence is a string, 
// not an anonymous type, var is optional here also.
foreach (string s in wordQuery)
{
    Console.WriteLine(s);
}

// Example #2: var is required because
// the select clause specifies an anonymous type
var custQuery = from cust in customers
                where cust.City == "Phoenix"
                select new { cust.Name, cust.Phone };

// var must be used because each item 
// in the sequence is an anonymous type
foreach (var item in custQuery)
{
    Console.WriteLine("Name={0}, Phone={1}", item.Name, item.Phone);
}

Ayrıca bkz.See also