1 C 語言發展史

2022-05-02 23:24:10 字數 2408 閱讀 3253

本部分簡單介紹從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結構,並提供語法糖簡化工作

readonlydecimal? price;

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

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

5.linq簡介

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

資料來源為物件的list

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

var是在程式編譯時根據結果推斷所需的型別,型別推斷

資料來源為xml檔案

資料來源為資料庫時其寫法類似於基於物件的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平台簡介

C語言發展史

c語言的發展頗為有趣。它的原型algol 60語言。也成為a語言 1960年出現的algol60是一種面向問題的高階語言,離硬體比較遠,不宜用來編寫系統程式。1967年劍橋大學的martin richards 對cpl語言做了簡化,推出了bcpl語言。1970年美國貝爾實驗室的ken thompso...

C 語言發展史

20世紀60年代,劍橋大學 martin richards為計算機軟體人員在開發系統軟體時,作為記述語言使用而開發了bcpl語言 1970年,bell實驗室 ken thompson在繼承bcpl語言的許多優點的基礎上發明了實用的b語言 1972年,bell實驗室的dennis ritchie和br...

java語言發展史

1 何為程式語言 程式語言是一種特殊的語言,是計算機和人相互交流的語言,這些語言用來告訴計算機如何去執行一些指定流程步驟,以便達到特定的目的。計算機能夠識別多種語言。我們要和計算機互動,就必須學習這些語言。簡單來說,程式語言是用來編寫軟體的,幫助人類改造世界。例子 乙個人和另外乙個人溝通需要一種語言...