自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

初探Linq局部變量類型

開發(fā) 后端
這里介紹Linq局部變量類型,使用這個特性,聲明一個Linq局部變量,它的具體類型是通過初始化表達式來推斷。這點是通過var 關鍵詞完成的。

Linq有很多值得學習的地方,這里我們主要介紹Linq局部變量,包括介紹對象初始化和集合初始化等方面。

Linq局部變量類型

使用這個特性,聲明一個Linq局部變量,它的具體類型是通過初始化表達式來推斷。這點是通過var 關鍵詞完成的(這個使用腳本語言的人應該很熟悉,但它們實際上是有很大區(qū)別的)。我們可以寫出如下的代碼:

  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 關鍵詞是一個強類型的變量引用。

對象初始化和集合初始化

我們繼續(xù)使用上面的Point 類。假設我們想要這個類的一個實例,我們會建立對象并設置它的屬性,代碼會是這樣子的:

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

現(xiàn)在,使用對象初始化,就可以像這樣子來重寫:

  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隨機讀取數(shù)據(jù)淺析
責任編輯:佚名 來源: 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-21 10:57:12

VB.NET局部變量類

2010-01-20 10:27:07

VB.NET隱式類型局

2018-05-14 09:15:24

Python變量函數(shù)

2009-10-12 14:13:00

VB.NET使用局部變

2009-12-15 10:48:54

Ruby局部變量

2020-11-11 21:26:48

函數(shù)變量

2024-05-29 08:49:22

Python全局變量局部變量

2015-01-07 14:41:32

Android全局變量局部變量

2021-09-28 07:12:09

函數(shù)內存

2010-03-15 09:32:56

Python函數(shù)

2017-02-08 12:28:37

Android變量總結

2009-09-22 17:21:24

線程局部變量

2023-09-24 23:40:54

Python變量

2010-10-14 09:34:34

JVM局部變量

2012-07-11 23:10:49

SQL Server數(shù)據(jù)庫

2011-11-23 10:59:18

Javafinal
點贊
收藏

51CTO技術棧公眾號