資料介紹
如果我們可以同時(shí)擁有 C# 和 Java 世界的最好特性,那會(huì)是什么樣呢?
完美的編程語(yǔ)言并不存在,我希望我們可以在這一點(diǎn)上達(dá)成一致。開(kāi)發(fā)新語(yǔ)言往往是為了克服另一種語(yǔ)言的弊端,又不可避免的在某些方面上健壯一些,卻在另一些方面上存在不足。
C# 與 Java 都起源于 C/C++ 語(yǔ)言,他們?cè)诿嫦驅(qū)ο蠓矫嬗性S多相似之處。除了 Java JVM 和 C# .NET CLR 有許多相同結(jié)構(gòu)上的相似性之外,他們各自的開(kāi)發(fā)團(tuán)隊(duì)都有各自的發(fā)展方向,他們關(guān)注的是各自的語(yǔ)言應(yīng)該成為什么樣子。
我們并不想糾結(jié)于某一個(gè)語(yǔ)言比另一個(gè)語(yǔ)言好,我們只想羅列出 C# 開(kāi)發(fā)者能用到而 Java 中沒(méi)有的那些特性而已。
下面我們開(kāi)始吧。
1
LINQ
LINQ (Language-Integrated Query,語(yǔ)言集成查詢(xún)) 于 2007 年引入到 C#,以幫助開(kāi)發(fā)人員從各種數(shù)據(jù)源查詢(xún)數(shù)據(jù)。使用它,我們可以在無(wú)需考慮正在調(diào)用的特定數(shù)據(jù)庫(kù)的語(yǔ)法來(lái)編寫(xiě)查詢(xún)語(yǔ)句。LINQ provider 所提供的一個(gè)組件將查詢(xún)轉(zhuǎn)換為下層數(shù)據(jù)源可讀的格式。例如,如果我們需要從 SQL 數(shù)據(jù)庫(kù)查詢(xún)數(shù)據(jù),LINQ to SQL provider 程序?qū)?LINQ 查詢(xún)轉(zhuǎn)換成 T-SQL,以便數(shù)據(jù)庫(kù)可以理解它。
要在 LINQ 中執(zhí)行查詢(xún)操作,首先獲取數(shù)據(jù)庫(kù),然后創(chuàng)建查詢(xún),最后執(zhí)行查詢(xún)。在 LINQ to Object 查詢(xún)中,這可能僅像一樣代碼一樣簡(jiǎn)單,而不是為每個(gè)循環(huán)編寫(xiě)嵌套的復(fù)雜迭代。
例如,我們來(lái)看看這個(gè)代碼,用于在 C# 中從列表中過(guò)濾 2 位數(shù)。
首先,在不使用 LINQ 的情況下:

如果使用 LINQ 查詢(xún)語(yǔ)法形式:

或者是方法語(yǔ)法形式:

這里兩種語(yǔ)法都是正確的,唯一的區(qū)別就是查詢(xún)語(yǔ)法看起來(lái)更像是 SQL 語(yǔ)句而方法語(yǔ)法使用 lambda 表達(dá)式(當(dāng)然,看起來(lái)很像我們?cè)?Java 里寫(xiě)的某些代碼)
綜述:LINQ 所依賴(lài)的許多特性,如 lambda 表達(dá)式(就 LINQ 來(lái)說(shuō)非常有用),已經(jīng)在 Java 中有了等效的實(shí)現(xiàn),盡管我們可以使用流和 lambda 來(lái)查詢(xún)數(shù)據(jù),但 LINQ 簡(jiǎn)化了整個(gè)過(guò)程并且移除了很多在 Java 中存在的冗余代碼。
2
Struct
C# 中的結(jié)構(gòu)體類(lèi)似于類(lèi)。實(shí)際上,一個(gè) struct 甚至可以被認(rèn)為是一個(gè)“輕量級(jí)類(lèi)”,因?yàn)樗梢园瑯?gòu)造函數(shù)、常量、方法等等。一個(gè)結(jié)構(gòu)體和一個(gè)類(lèi)之間最大的區(qū)別在于結(jié)構(gòu)是值類(lèi)型,而類(lèi)是引用類(lèi)型。
相比于創(chuàng)建類(lèi),編寫(xiě)結(jié)構(gòu)體最重要的好處是在構(gòu)造一個(gè)值類(lèi)型時(shí)比在構(gòu)造引用類(lèi)型時(shí)更容易確保值語(yǔ)義。如 Microsoft 的文檔所述,“struct 類(lèi)型的變量直接包含結(jié)構(gòu)體的數(shù)據(jù),而類(lèi)類(lèi)型的變量包含對(duì)數(shù)據(jù)的引用?!币虼?,對(duì)比使用類(lèi)時(shí),使用結(jié)構(gòu)體的好處之一是,從代碼的其他部分更改其值的唯一方法是將其作為參考進(jìn)行顯式傳遞。
微軟的開(kāi)發(fā)人員建議對(duì)于那些小于 16 字節(jié)、生命周期短、不改變的而且不常裝箱的類(lèi)型,使用結(jié)構(gòu)體(struct)而不是類(lèi)(class)。在這種情況下,使用結(jié)構(gòu)體可能會(huì)比使用類(lèi)更有效率,因?yàn)樗鼤?huì)保存在棧而不是堆中。
- 單片機(jī)c語(yǔ)言+編程c語(yǔ)言_C編程語(yǔ)言簡(jiǎn)介
- 單片機(jī)為什么一直用C語(yǔ)言,不用其他編程語(yǔ)言?只有學(xué)過(guò)的知道!
- 單片機(jī)C語(yǔ)言和匯編語(yǔ)言混合編程實(shí)例詳解 228次下載
- 華為C語(yǔ)言編程規(guī)范 63次下載
- C語(yǔ)言編程字符串函數(shù)匯總資源下載 9次下載
- Linux下C語(yǔ)言編程入門(mén)教程詳細(xì)說(shuō)明 39次下載
- 什么是C語(yǔ)言?C語(yǔ)言有哪些優(yōu)勢(shì)及C語(yǔ)言的應(yīng)用資料說(shuō)明
- Java程序設(shè)計(jì)教程之Java語(yǔ)言的基礎(chǔ)知識(shí)概述 36次下載
- JAVA教程之面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言Java的系統(tǒng)環(huán)境概述 0次下載
- Linux操作系統(tǒng)下C語(yǔ)言編程入門(mén).pdf 98次下載
- 基于邏輯語(yǔ)言計(jì)算機(jī)軟件設(shè)計(jì)(JAVA語(yǔ)言) 0次下載
- C語(yǔ)言入門(mén)經(jīng)典-C語(yǔ)言編程 132次下載
- C語(yǔ)言和匯編語(yǔ)言混合編程方法和C語(yǔ)言中斷處理方法 36次下載
- STM8的C語(yǔ)言編程說(shuō)明 38次下載
- java 網(wǎng)絡(luò)編程語(yǔ)言 0次下載
- 汽車(chē)網(wǎng)絡(luò)安全開(kāi)發(fā)語(yǔ)言選型指南:C/C++/Rust/Java等主流語(yǔ)言對(duì)比+Perforce QAC/Klocwork工具支持 225次閱讀
- C語(yǔ)言中的socket編程基礎(chǔ) 2k次閱讀
- PLC編程語(yǔ)言和C語(yǔ)言的區(qū)別 6.6k次閱讀
- plc編程語(yǔ)言與c語(yǔ)言的聯(lián)系 c語(yǔ)言和PLC有什么區(qū)別 7k次閱讀
- 四種編程語(yǔ)言之間的區(qū)別和聯(lián)系 3.1k次閱讀
- vb語(yǔ)言和c++語(yǔ)言的區(qū)別 4.1k次閱讀
- 七種編程語(yǔ)言的學(xué)習(xí)曲線 2k次閱讀
- C語(yǔ)言的簡(jiǎn)介和特點(diǎn)說(shuō)明 8.8k次閱讀
- 2019年的編程語(yǔ)言排行榜你知道嗎 2.6w次閱讀
- 學(xué)習(xí)開(kāi)發(fā)環(huán)境和編程語(yǔ)言:匯編語(yǔ)言和C語(yǔ)言的比較 9.7k次閱讀
- plc與C語(yǔ)言有什么關(guān)系_plc可以用c語(yǔ)言編程嗎_plc的C語(yǔ)言編程詳解 7.9w次閱讀
- plc編程語(yǔ)言有幾種_plc常用編程語(yǔ)言介紹 5.7w次閱讀
- Java編程和c語(yǔ)言哪一種更有優(yōu)勢(shì)_C語(yǔ)言與JAVA的區(qū)別是什么 2.5w次閱讀
- 機(jī)器人研發(fā)十大熱門(mén)編程語(yǔ)言:Java、C/C ++、Python 5.5k次閱讀
- arduino用什么語(yǔ)言編程 7.1w次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊(cè)
- 3.00 MB | 次下載 | 免費(fèi)
- 2MDD品牌三極管BC817數(shù)據(jù)手冊(cè)
- 2.51 MB | 次下載 | 免費(fèi)
- 3MDD品牌三極管D882數(shù)據(jù)手冊(cè)
- 3.49 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊(cè)
- 3.26 MB | 次下載 | 免費(fèi)
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊(cè)
- 3.09 MB | 次下載 | 免費(fèi)
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊(cè)
- 2.32 MB | 次下載 | 免費(fèi)
- 7STM32G474 HRTIME PWM 丟波問(wèn)題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動(dòng)汽車(chē)高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛(ài)華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說(shuō)明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測(cè)距通信定位模塊規(guī)格書(shū)
- 838.47 KB | 5次下載 | 免費(fèi)
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論