資料介紹
如果我們可以同時(shí)擁有 C# 和 Java 世界的最好特性,那會(huì)是什么樣呢?
完美的編程語言并不存在,我希望我們可以在這一點(diǎn)上達(dá)成一致。開發(fā)新語言往往是為了克服另一種語言的弊端,又不可避免的在某些方面上健壯一些,卻在另一些方面上存在不足。
C# 與 Java 都起源于 C/C++ 語言,他們?cè)诿嫦驅(qū)ο蠓矫嬗性S多相似之處。除了 Java JVM 和 C# .NET CLR 有許多相同結(jié)構(gòu)上的相似性之外,他們各自的開發(fā)團(tuán)隊(duì)都有各自的發(fā)展方向,他們關(guān)注的是各自的語言應(yīng)該成為什么樣子。
我們并不想糾結(jié)于某一個(gè)語言比另一個(gè)語言好,我們只想羅列出 C# 開發(fā)者能用到而 Java 中沒有的那些特性而已。
下面我們開始吧。
1
LINQ
LINQ (Language-Integrated Query,語言集成查詢) 于 2007 年引入到 C#,以幫助開發(fā)人員從各種數(shù)據(jù)源查詢數(shù)據(jù)。使用它,我們可以在無需考慮正在調(diào)用的特定數(shù)據(jù)庫的語法來編寫查詢語句。LINQ provider 所提供的一個(gè)組件將查詢轉(zhuǎn)換為下層數(shù)據(jù)源可讀的格式。例如,如果我們需要從 SQL 數(shù)據(jù)庫查詢數(shù)據(jù),LINQ to SQL provider 程序?qū)?LINQ 查詢轉(zhuǎn)換成 T-SQL,以便數(shù)據(jù)庫可以理解它。
要在 LINQ 中執(zhí)行查詢操作,首先獲取數(shù)據(jù)庫,然后創(chuàng)建查詢,最后執(zhí)行查詢。在 LINQ to Object 查詢中,這可能僅像一樣代碼一樣簡單,而不是為每個(gè)循環(huán)編寫嵌套的復(fù)雜迭代。
例如,我們來看看這個(gè)代碼,用于在 C# 中從列表中過濾 2 位數(shù)。
首先,在不使用 LINQ 的情況下:
如果使用 LINQ 查詢語法形式:
或者是方法語法形式:
這里兩種語法都是正確的,唯一的區(qū)別就是查詢語法看起來更像是 SQL 語句而方法語法使用 lambda 表達(dá)式(當(dāng)然,看起來很像我們?cè)?Java 里寫的某些代碼)
綜述:LINQ 所依賴的許多特性,如 lambda 表達(dá)式(就 LINQ 來說非常有用),已經(jīng)在 Java 中有了等效的實(shí)現(xiàn),盡管我們可以使用流和 lambda 來查詢數(shù)據(jù),但 LINQ 簡化了整個(gè)過程并且移除了很多在 Java 中存在的冗余代碼。
2
Struct
C# 中的結(jié)構(gòu)體類似于類。實(shí)際上,一個(gè) struct 甚至可以被認(rèn)為是一個(gè)“輕量級(jí)類”,因?yàn)樗梢园瑯?gòu)造函數(shù)、常量、方法等等。一個(gè)結(jié)構(gòu)體和一個(gè)類之間最大的區(qū)別在于結(jié)構(gòu)是值類型,而類是引用類型。
相比于創(chuàng)建類,編寫結(jié)構(gòu)體最重要的好處是在構(gòu)造一個(gè)值類型時(shí)比在構(gòu)造引用類型時(shí)更容易確保值語義。如 Microsoft 的文檔所述,“struct 類型的變量直接包含結(jié)構(gòu)體的數(shù)據(jù),而類類型的變量包含對(duì)數(shù)據(jù)的引用?!币虼?,對(duì)比使用類時(shí),使用結(jié)構(gòu)體的好處之一是,從代碼的其他部分更改其值的唯一方法是將其作為參考進(jìn)行顯式傳遞。
微軟的開發(fā)人員建議對(duì)于那些小于 16 字節(jié)、生命周期短、不改變的而且不常裝箱的類型,使用結(jié)構(gòu)體(struct)而不是類(class)。在這種情況下,使用結(jié)構(gòu)體可能會(huì)比使用類更有效率,因?yàn)樗鼤?huì)保存在棧而不是堆中。
- 單片機(jī)c語言+編程c語言_C編程語言簡介
- 單片機(jī)為什么一直用C語言,不用其他編程語言?只有學(xué)過的知道!
- 單片機(jī)C語言和匯編語言混合編程實(shí)例詳解 227次下載
- 華為C語言編程規(guī)范 61次下載
- Linux下C語言編程入門教程詳細(xì)說明 39次下載
- 什么是C語言?C語言有哪些優(yōu)勢(shì)及C語言的應(yīng)用資料說明
- Java程序設(shè)計(jì)教程之Java語言的基礎(chǔ)知識(shí)概述 36次下載
- JAVA教程之面向?qū)ο蟪绦蛟O(shè)計(jì)語言Java的系統(tǒng)環(huán)境概述 0次下載
- Linux操作系統(tǒng)下C語言編程入門.pdf 96次下載
- 基于邏輯語言計(jì)算機(jī)軟件設(shè)計(jì)(JAVA語言) 0次下載
- C語言入門經(jīng)典-C語言編程 126次下載
- C語言和匯編語言混合編程方法和C語言中斷處理方法 36次下載
- STM8的C語言編程說明 37次下載
- java 網(wǎng)絡(luò)編程語言 0次下載
- C語言編程技巧 603次下載
- C語言中的socket編程基礎(chǔ) 396次閱讀
- Orin芯片的編程語言支持 359次閱讀
- PLC編程語言和C語言的區(qū)別 3082次閱讀
- plc編程語言與c語言的聯(lián)系 c語言和PLC有什么區(qū)別 4300次閱讀
- 四種編程語言之間的區(qū)別和聯(lián)系 1661次閱讀
- vb語言和c++語言的區(qū)別 2431次閱讀
- 七種編程語言的學(xué)習(xí)曲線 1022次閱讀
- C語言的簡介和特點(diǎn)說明 8053次閱讀
- 2019年的編程語言排行榜你知道嗎 2.5w次閱讀
- 學(xué)習(xí)開發(fā)環(huán)境和編程語言:匯編語言和C語言的比較 9080次閱讀
- plc與C語言有什么關(guān)系_plc可以用c語言編程嗎_plc的C語言編程詳解 7.4w次閱讀
- plc編程語言有幾種_plc常用編程語言介紹 5.4w次閱讀
- Java編程和c語言哪一種更有優(yōu)勢(shì)_C語言與JAVA的區(qū)別是什么 2.4w次閱讀
- 機(jī)器人研發(fā)十大熱門編程語言:Java、C/C ++、Python 5183次閱讀
- arduino用什么語言編程 6.9w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 0.63 MB | 3次下載 | 免費(fèi)
- 89天練會(huì)電子電路識(shí)圖
- 5.91 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論