C# 隱式變量(var)

在C#中,變量必須使用數(shù)據(jù)類型聲明。這些稱為顯式類型變量。

int i = 100;// 顯式變量

C#3.0引入了var關(guān)鍵字來聲明方法級變量,而無需顯式指定數(shù)據(jù)類型。                    

var j = 100; // 隱式類型的局部變量

編譯器將從=運算符右側(cè)的表達式中推斷出變量的類型。上面,var將編譯為int。

以下從表達式推斷類型。

int i = 10;
var j = i + 1; // 編譯為int

var可用于聲明任何內(nèi)置數(shù)據(jù)類型,用戶定義類型或匿名類型變量。下面的示例顯示C#編譯器根據(jù)該值推斷類型:        

static void Main(string[] args)
{
    var i = 10;
    Console.WriteLine("Type of i is {0}", i.GetType());

    var str = "Hello World!!";
    Console.WriteLine("Type of str is {0}", str.GetType());

    var dbl = 100.50d;
    Console.WriteLine("Type of dbl is {0}", dbl.GetType());

    var isValid = true;
    Console.WriteLine("Type of isValid is {0}", isValid.GetType());

    var ano = new { name = "Steve" };
    Console.WriteLine("Type of ano is {0}", ano.GetType());

    var arr = new[] { 1, 10, 20, 30 };
    Console.WriteLine("Type of arr is {0}", arr.GetType());

    var file = new FileInfo("MyFile");
    Console.WriteLine("Type of file is {0}", file.GetType());

}

隱式類型的變量必須在聲明時進行初始化;否則,C#編譯器會給出錯誤:必須初始化隱式類型的變量。

var i; // 編譯時錯誤:必須初始化隱式類型的變量
i = 100;

var不允許在單個語句中多次聲明變量。

var i = 100, j = 200, k = 300; // 錯誤:無法在單個語句中聲明var變量//以下內(nèi)容也有效var i = 100; 
var j = 200; 
var k = 300;

var 不能用于函數(shù)參數(shù)。

void Display(var param) //編譯時錯誤
{
    Console.Write(param);
}

var 可以在for和foreach循環(huán)中使用。

for(var i = 0; i < 10; i++)
{    Console.WriteLine(i);
}

var 也可以與LINQ查詢一起使用。

// 字符串集合
IList<string> stringList = new List<string>() { 
    "C# Tutorials",
    "VB.NET Tutorials",
    "Learn C++",
    "MVC Tutorials" ,
    "Java" 
};

// LINQ查詢語法
var result = from s in stringList
            where s.Contains("Tutorials") 
            select s;
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清