C# 使用var关键字定义变量

本文关键字:定义 变量 关键字 var 使用 | 更新日期: 2023-09-12 17:37:58

在 C# 中,必须使用数据类型声明变量。这些变量称为显式类型变量。

int i = 100;// explicitly typed variable

C# 3.0 引入了var关键字来声明方法级变量,而无需显式指定数据类型。

var j = 100; // implicitly typed local variable

编译器将从=运算符右侧的表达式推断变量的类型。以上,var将编译为 int .

下面从表达式推断类型。

int i = 10;
var j = i + 1; // compiles as int

var可用于声明任何内置数据类型、用户定义类型或匿名类型变量。 下面的示例演示 C# 编译器根据值推断类型:

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; // Compile-time error: Implicitly-typed variables must be initialized
i = 100;

不允许在单个语句中对var变量进行多个声明。

var i = 100, j = 200, k = 300; // Error: cannot declare var variables in a single statement
//The followings are also valid
var i = 100; 
var j = 200; 
var k = 300; 

var不能用于函数参数。

void Display(var param) //Compile-time error
{
    Console.Write(param);
}

var 可用于 for 和 foreach 循环。

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

var 也可以与 LINQ 查询一起使用。

// string collection
IList<string> stringList = new List<string>() { 
    "C# Tutorials",
    "VB.NET Tutorials",
    "Learn C++",
    "MVC Tutorials" ,
    "Java" 
};
// LINQ Query Syntax
var result = from s in stringList
            where s.Contains("Tutorials") 
            select s;