1.C#語言發展史


1.C#語言發展史

本部分簡單介紹從C#1到C#5各個版本的語言新特性,

1.簡單的數據類型

我們先使用C#1編寫一個Product類,如下圖所示

C#2 中的強類型集合(泛型) 

C#3 自動實現屬性和簡化初始化

 

 

 

 

 

 

 

 

 

 

 

 

 

C#4 命名參數

以上就是Product類從C#1到C#4的演變歷程總結如下:

2.排序和過濾

排序功能

下面我們將使用按名稱對Product對象進行排序,來展示對排序的改進。

C#1中的排序

C#2 中的排序(引入了泛型)

 

C# 3中的排序(Lambda表達式)

下面總結一下在排序的過程中C#1-C#3過程中的演變歷程

3.列表查詢

下面要展示的是查詢出Product列表中price>250的所有商品

C#1的查詢

C#1中存在問題:C#1 中存在強制類型轉換,使用if循環判斷

C#2中的查詢(引入泛型避免強制類型轉換)

使用if判斷不專業,C#2中可以使用委托,並且將打印和查詢分開

在將上面的代碼進行優化,如下所示,但是委托看起來依然很繁瑣

C#3 使用Lamdba表達式進行優化

總結

4.處理未知數據

可空類型

處理未知數據的場景:如果在數據庫中Product類中的price對象值可以為null,但是在對象中它是值類型,值類型不能為null。

在C#1中處理方式有三種:

1.圍繞decimal創建一個引用類型的包裝器

2.維護一個bool類型值,表示他是否為null

3.使用"魔數"來表示一個未知的價格

 

C#2中使用.Net 2.0提供的 可空類型 Nullable<T>結構,並提供語法糖簡化工作

readonly decimal? price;

可選參數和默認值

在C#1、C#2、C#3中如果不想對外提供所有的方法參數就必須使用方法的重載。

但是在C#4中引入了 "可選參數"

 

5.Linq簡介

Linq是C#3的核心,Linq是關於查詢的,其目的是使用一致的語法和特性,以一種易閱讀、可組合的方式,使對多數據源的查詢變得簡單。

查詢表達式

數據源為對象的List

例如:查詢單價大於100的商品名稱和供貨商名稱

Var是在程序編譯時根據結果推斷所需的類型,類型推斷

查詢xml

數據源為xml文件

Linq to Sql

數據源為數據庫時其寫法類似於基於對象的list,以后再詳細講解。

 

6.com和動態類型

C#4 中最為重要的是互操作,其中包括兩大主題對舊的com技術的處理和映入dynamic

 com:Component Object Model,C#4中簡化Com互操作,支持索引器

 動態類型dynamic:一個新的類型,對於C#編譯器是一個類型,CLR根本不識別,用於更動態語言進行交互。

 

7.異步代碼

C#5的的特性:異步函數,可以使用異步函數來中斷代碼的執行,而不阻塞線程。

async: async 其實就是一個標記,標記這個方法是異步方法。當方法被標記為一個異步方法時,那么其方法中必須要使用await關鍵字。

await:

 

8..net平台簡介


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM