初探Linq局部变量类型

开发 后端
这里介绍Linq局部变量类型,使用这个特性,声明一个Linq局部变量,它的具体类型是通过初始化表达式来推断。这点是通过var 关键词完成的。

Linq有很多值得学习的地方,这里我们主要介绍Linq局部变量,包括介绍对象初始化和集合初始化等方面。

Linq局部变量类型

使用这个特性,声明一个Linq局部变量,它的具体类型是通过初始化表达式来推断。这点是通过var 关键词完成的(这个使用脚本语言的人应该很熟悉,但它们实际上是有很大区别的)。我们可以写出如下的代码:

  1. var num = 50;  
  2. var str = "simple string";  
  3. var obj = new myType();  
  4. var numbers = new int[] {1,2,3};  
  5. var dic = new Dictionary<int,myType>(); 

编译器会生成IL中间代码,就如同我们编译了下面的代码:

  1. int num = 50;  
  2. string str = "simple string";  
  3. myType obj = new myType();  
  4. int[] numbers = new int[] {1,2,3};  
  5. Dictionary<int,myType> dic = new Dictionary<int,myType>(); 

注意,这里并不存在无类型的变量,也没有推迟类型的绑定。编译器是从右边的赋值语句来自动推断和声明变量的类型的,var 关键词是一个强类型的变量引用。

对象初始化和集合初始化

我们继续使用上面的Point 类。假设我们想要这个类的一个实例,我们会建立对象并设置它的属性,代码会是这样子的:

  1. Point p = new Point();  
  2. p.X = 0;  
  3. p.Y = 0

现在,使用对象初始化,就可以像这样子来重写:

  1. Point p = new Point() { X = 0Y = 0 }; 

这个特性也可以使用在集合上,看看下面这段示例:

  1. List points = new List {  
  2. new Point { X = 2,  Y = 5 },  
  3. new Point { X = 1Y = -10 },  
  4. new Point { X = 3Y = 0 }  
  5. }; 

注意,编译器会产生和上面相等价的长一些的代码,它依次调用Add() 方法来在集合里添加元素。以上介绍Linq局部变量。

【编辑推荐】

  1. Linq LET关键字概述
  2. Linq匿名类型简单概述
  3. Linq Lambda表达式全面分析
  4. Linq扩展方法简单分析
  5. Linq随机读取数据浅析
责任编辑:佚名 来源: IT168
相关推荐

2009-09-11 10:07:05

Linq隐式类型化局部

2009-08-27 10:08:36

C#隐含类型局部变量

2009-08-26 15:39:08

C#隐式类型局部变量

2009-08-26 16:37:07

C#迭代器局部变量

2010-01-20 10:27:07

VB.NET隐式类型局

2010-01-21 10:57:12

VB.NET局部变量类

2018-05-14 09:15:24

Python变量函数

2009-12-15 10:48:54

Ruby局部变量

2020-11-11 21:26:48

函数变量

2009-10-12 14:13:00

VB.NET使用局部变

2015-01-07 14:41:32

Android全局变量局部变量

2024-05-29 08:49:22

Python全局变量局部变量

2010-03-15 09:32:56

Python函数

2021-09-28 07:12:09

函数内存

2017-02-08 12:28:37

Android变量总结

2009-09-22 17:21:24

线程局部变量

2023-09-24 23:40:54

Python变量

2012-07-11 23:10:49

SQL Server数据库

2010-10-14 09:34:34

JVM局部变量

2011-11-23 10:59:18

Javafinal
点赞
收藏

51CTO技术栈公众号