LINQ 為C 開發的一種類似於SQL的語言

2022-08-29 01:00:18 字數 1313 閱讀 8636

msxml和ado.net使我們能夠遍歷和操作xml文件,但它們都無法讓開發人員在編寫資料訪問操作**時覺得舒服、自然。

linq使資料訪問成為了.net中的乙個高階程式設計概念,它使得開發人員能夠完全依靠智慧型感知技術來建立型別安全的資料訪問**編譯期的語法檢查

using語句是try...finally的簡潔表示。當所建立的型別實現了idisposable時,則可以直接使用using。

匿名方法(anonymous method)

// create a handler for a click event

button1.click += delegate(system.object o, system.eventargs e)

;

物件、集合初始化器語法,編譯器會將集合初始化**轉換成完整的形式,節省出大量的編碼時間。p28 《linq程式設計技術內幕》

chapter 3:擴充套件方法(extension method): 允許擴充套件密封類和內部型別,它還能避免深度繼承樹,它提供了一種無需繼承的新增行為的方式。

示例演示了如何新增乙個名為dump的擴充套件方法,第乙個引數型別之前必需使用this修飾符。

public static void dump(this ilist list)

foreach(object o in list)

o.dump();}}

p60~64示例3-6和3-8對比,說明linq使得**更加簡潔。linq的基礎就是擴充套件方法(還有泛型),where就是乙個用於擴充套件iqueryable的擴充套件方法。

chapter 4: yield return關鍵字片語能夠將本身不是可迭代集合的物件做成可迭代集合。它不能出現在catch塊中,也不能出現在帶有乙個或多個catch子句的try塊中。yield語句不能出現在匿名方法中。

chapter 5:

1. delegate void functionpointer(string str);

functionpointer fp = s=>console.writeline(s);

fp("hello world");

2. system.actionfp = s=>console.writeline(s);

fp("hello world");

func用於在引數上執行乙個操作並返回乙個值;

predicate用於定義一組條件並確定引數是否符合這些條件。

如何用C 做乙個類似於桌面外掛程式的程式

最近看到有人問如何做乙個 桌面天氣秀 類似的軟體,開始我以為做這個東西很複雜,因為覺得至少要傳遞 message 給desktop 但事實上,一試之後發現做這個程式竟然很簡單。首先,需要設定窗體樣式,這裡面要設定的有 l設定 formborderstyle 為none l 設定topmost 為fa...

一種類似等比數列求和問題的解法

有時,會遇到這樣的問題 求 sum n i kx i 其中,k很小,n很大,x可以是數,矩陣,或多項式。通常,有兩種做法 將x放入矩陣中,並依次把 a 1 i 拆開,把係數放入矩陣 其實就是楊輝三角 這個方法比較容易,但時間複雜度為 o k 3 log n 使用遞迴。從 frac n 2 的答案推到...

愚翁專欄 如何用C 做乙個類似於桌面外掛程式的程式

如何用c 做乙個類似於桌面外掛程式的程式 最近看到有人問如何做乙個 桌面天氣秀 類似的軟體,開始我以為做這個東西很複雜,因為覺得至少要傳遞 message 給desktop 但事實上,一試之後發現做這個程式竟然很簡單。首先,需要設定窗體樣式,這裡面要設定的有 l設定 formborderstyle ...