偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

概述C# 匿名函數(shù)

開發(fā) 后端
本文介紹C# 匿名函數(shù),匿名函數(shù)的基礎(chǔ)是對象初始化器,匿名類型從對象初始化器自動推斷和生成的元組類型。

放了一個長假,很是郁悶,休息沒休息好,學(xué)習(xí)沒學(xué)上,玩也沒怎么玩……這7天怎么就沒了?

哎,看來人生沒計劃,沒安排就會混混沌沌的過一天又一天,都不知道自己到底在干嘛。這樣下去只會一事無成!計劃好每一天的工作、學(xué)習(xí)、生活,或者安排好每一件事情,每一個目標(biāo)的計劃,對取得成功還是非常有幫助的!

C# 匿名函數(shù)

  1. //匿名函數(shù)  
  2. varp1=new{Name="張三"Age=28};  
  3. varp2=new{Name="李四"Age=29};  
  4. varintArr=new[]{1,2,3,4,5}; 


首先我們來看一下上面這段代碼,比較簡單,和我們平時定義一個實例基本沒什么區(qū)別,只是new后面沒有跟具體定義的類型;這里我們使用new關(guān)鍵字調(diào)用匿名初始化器創(chuàng)建了一個匿名類型對象; 匿名類型直接繼承自System.Object;匿名類型的成員是編譯器根據(jù)初始化器推斷而來的一些讀寫屬性。

這里我們注意到C# 匿名函數(shù)基本上是配合隱式類型var來使用的,而且定義的順序也是一定要注意,上面p1和p2初始化時定義的屬性名、類型和順序一致,因此編譯器認(rèn)為他們是同一個類型,可以使用p1=p2這樣的賦值語句;特別是順序需要注意,如果初始化時名稱類型一致而順序不一致,則p1和p2就是兩個類型,如果使用p1=p2則編譯時會拋出錯誤 :無法將類型“AnonymousType#1”隱式轉(zhuǎn)換為“AnonymousType#2” .定義匿名函數(shù)時還需要注意,不能用null賦初始值。

C# 匿名函數(shù)解析:匿名函數(shù)的基礎(chǔ)是對象初始化器,匿名類型從對象初始化器(object initializer)自動推斷和生成的元組類型。下面我們來看看匿名函數(shù)到底怎么生成的和我們原來的定義方式有什么區(qū)別:var p1 = new {Name="張三",Age=28};我們給p1賦了一個匿名類型,在編譯時,編譯器使用對象初始化器推斷的屬性來創(chuàng)建見一個新的匿名類型,該類型擁有Name和Age的屬性,在運行時,會創(chuàng)建新類型的一個實例同時Name和Age屬性將會被設(shè)置為對象初始化器中指定的值“張三”、28;和上面幾節(jié)里描述的一樣這里大家一定會想到,肯定又是在編譯器里封裝了一些處理;確實是這樣,下面這段代碼描述編譯器針對匿名函數(shù)語句具體做了哪些工作:

  1. class__Anonymous1  
  2. {  
  3. privatestringname;  
  4. privateintage;  
  5. publicstringName{get{returnname;}set{name=value;}}  
  6. publicintAge{get{returnage;}set{age=value;}}  
  7. }  
  8. __Anonymous1p1=new__Anonymous1();  
  9. p1.Name="張三";  
  10. p1.Age=28; 

這段代碼就是我們非常熟悉的寫法,編譯器就是在后臺依據(jù)匿名函數(shù)解析類型,創(chuàng)建新類,初始化對象;如果你創(chuàng)建了多個相似的匿名類型,C#編譯器會聰明的發(fā)現(xiàn)這一點,只生成一個類和它的多個實例;小結(jié)匿名函數(shù)多數(shù)是和var隱式類型一起使用,因此多在局部(方法內(nèi)部)內(nèi)使用。同樣匿名函數(shù)是編譯器編譯時創(chuàng)建,內(nèi)部實現(xiàn)與我們原來的寫法沒有本質(zhì)區(qū)別。

【編輯推薦】

  1. C#在應(yīng)用程序間發(fā)送消息實現(xiàn)淺析
  2. 一些C#時間類型的入門知識
  3. C#接口和抽象類技術(shù)特點淺析
  4. 一個C#時間計算的實例
  5. C#繼承知識詳解
責(zé)任編輯:佚名 來源: 比特網(wǎng)
相關(guān)推薦

2009-08-20 16:28:45

C#匿名方法

2009-08-24 18:09:13

C#構(gòu)造函數(shù)

2009-07-31 15:37:45

C#靜態(tài)構(gòu)造函數(shù)

2009-08-10 17:25:58

C#匿名類型

2009-08-20 16:15:19

C# 匿名方法

2009-08-26 15:46:01

C#匿名類型

2009-08-27 17:51:34

C#匿名方法

2009-08-27 10:19:22

C#匿名類型

2009-09-01 10:58:46

C#匿名類型對象

2009-08-20 16:25:59

C# 匿名方法

2009-08-31 09:44:23

C# Employee

2009-09-03 11:15:38

C#設(shè)置Coopera

2009-08-18 17:29:02

C#使用指針

2009-08-13 15:18:23

C#文件上傳

2009-08-18 09:26:07

C#線程功能

2009-08-25 16:49:44

C#使用if語句

2009-09-03 10:42:16

C# Employee

2009-08-25 10:08:39

C# MyData對象

2009-08-19 11:09:00

C# Cast<T>

2009-08-17 09:57:00

C# Windows
點贊
收藏

51CTO技術(shù)棧公眾號