NET/C#中的匿名类型 var关键字

上一篇 / 下一篇  2013-10-15 20:26:13 / 个人分类:C#

摘抄自http://msdn.microsoft.com/zh-cn/library/bb383973.aspx

var(C# 参考)

Visual Studio 2012
3(共 6)对本文的评价是有帮助 评价此主题

从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型 var 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。 下面的两个 i 声明在功能上是等效的:

var i = 10; // implicitly typed
int i = 10; //explicitly typed

有关更多信息,请参见隐式类型的局部变量(C# 编程指南)和 LINQ 查询操作中的类型关系 (C#)

下面的示例演示了两个查询表达式。 在第一个表达式中,允许但不需要使用 var,因为可以将查询结果的类型显式声明为 IEnumerable<string> 但是,在第二个表达式中必须使用var,因为结果是一个匿名类型集合,而该类型的名称只有编译器本身可以访问。 请注意,在第二个示例中,foreach 迭代变量 item 也必须转换为隐式类型。

// Example #1: var is optional because
// 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);
}



TAG: 基础知识

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 3784
  • 日志数: 8
  • 建立时间: 2011-09-22
  • 更新时间: 2013-10-15

RSS订阅

Open Toolbar