資料介紹
如果我們可以同時擁有 C# 和 Java 世界的最好特性,那會是什么樣呢?
完美的編程語言并不存在,我希望我們可以在這一點上達成一致。開發新語言往往是為了克服另一種語言的弊端,又不可避免的在某些方面上健壯一些,卻在另一些方面上存在不足。
C# 與 Java 都起源于 C/C++ 語言,他們在面向對象方面有許多相似之處。除了 Java JVM 和 C# .NET CLR 有許多相同結構上的相似性之外,他們各自的開發團隊都有各自的發展方向,他們關注的是各自的語言應該成為什么樣子。
我們并不想糾結于某一個語言比另一個語言好,我們只想羅列出 C# 開發者能用到而 Java 中沒有的那些特性而已。
下面我們開始吧。
1
LINQ
LINQ (Language-Integrated Query,語言集成查詢) 于 2007 年引入到 C#,以幫助開發人員從各種數據源查詢數據。使用它,我們可以在無需考慮正在調用的特定數據庫的語法來編寫查詢語句。LINQ provider 所提供的一個組件將查詢轉換為下層數據源可讀的格式。例如,如果我們需要從 SQL 數據庫查詢數據,LINQ to SQL provider 程序將把 LINQ 查詢轉換成 T-SQL,以便數據庫可以理解它。
要在 LINQ 中執行查詢操作,首先獲取數據庫,然后創建查詢,最后執行查詢。在 LINQ to Object 查詢中,這可能僅像一樣代碼一樣簡單,而不是為每個循環編寫嵌套的復雜迭代。
例如,我們來看看這個代碼,用于在 C# 中從列表中過濾 2 位數。
首先,在不使用 LINQ 的情況下:
如果使用 LINQ 查詢語法形式:
或者是方法語法形式:
這里兩種語法都是正確的,唯一的區別就是查詢語法看起來更像是 SQL 語句而方法語法使用 lambda 表達式(當然,看起來很像我們在 Java 里寫的某些代碼)
綜述:LINQ 所依賴的許多特性,如 lambda 表達式(就 LINQ 來說非常有用),已經在 Java 中有了等效的實現,盡管我們可以使用流和 lambda 來查詢數據,但 LINQ 簡化了整個過程并且移除了很多在 Java 中存在的冗余代碼。
2
Struct
C# 中的結構體類似于類。實際上,一個 struct 甚至可以被認為是一個“輕量級類”,因為它可以包含構造函數、常量、方法等等。一個結構體和一個類之間最大的區別在于結構是值類型,而類是引用類型。
相比于創建類,編寫結構體最重要的好處是在構造一個值類型時比在構造引用類型時更容易確保值語義。如 Microsoft 的文檔所述,“struct 類型的變量直接包含結構體的數據,而類類型的變量包含對數據的引用。”因此,對比使用類時,使用結構體的好處之一是,從代碼的其他部分更改其值的唯一方法是將其作為參考進行顯式傳遞。
微軟的開發人員建議對于那些小于 16 字節、生命周期短、不改變的而且不常裝箱的類型,使用結構體(struct)而不是類(class)。在這種情況下,使用結構體可能會比使用類更有效率,因為它會保存在棧而不是堆中。
- 單片機c語言+編程c語言_C編程語言簡介
- 單片機為什么一直用C語言,不用其他編程語言?只有學過的知道!
- 單片機C語言和匯編語言混合編程實例詳解 227次下載
- 華為C語言編程規范 61次下載
- Linux下C語言編程入門教程詳細說明 39次下載
- 什么是C語言?C語言有哪些優勢及C語言的應用資料說明
- Java程序設計教程之Java語言的基礎知識概述 36次下載
- JAVA教程之面向對象程序設計語言Java的系統環境概述 0次下載
- Linux操作系統下C語言編程入門.pdf 96次下載
- 基于邏輯語言計算機軟件設計(JAVA語言) 0次下載
- C語言入門經典-C語言編程 126次下載
- C語言和匯編語言混合編程方法和C語言中斷處理方法 36次下載
- STM8的C語言編程說明 37次下載
- java 網絡編程語言 0次下載
- C語言編程技巧 603次下載
- C語言中的socket編程基礎 396次閱讀
- Orin芯片的編程語言支持 359次閱讀
- PLC編程語言和C語言的區別 3082次閱讀
- plc編程語言與c語言的聯系 c語言和PLC有什么區別 4300次閱讀
- 四種編程語言之間的區別和聯系 1661次閱讀
- vb語言和c++語言的區別 2431次閱讀
- 七種編程語言的學習曲線 1022次閱讀
- C語言的簡介和特點說明 8053次閱讀
- 2019年的編程語言排行榜你知道嗎 2.5w次閱讀
- 學習開發環境和編程語言:匯編語言和C語言的比較 9080次閱讀
- plc與C語言有什么關系_plc可以用c語言編程嗎_plc的C語言編程詳解 7.4w次閱讀
- plc編程語言有幾種_plc常用編程語言介紹 5.4w次閱讀
- Java編程和c語言哪一種更有優勢_C語言與JAVA的區別是什么 2.4w次閱讀
- 機器人研發十大熱門編程語言:Java、C/C ++、Python 5183次閱讀
- arduino用什么語言編程 6.9w次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開發包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開發板資料
- 34.89 MB | 1次下載 | 免費
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
- 3.32 MB | 1次下載 | 免費
- 8聯想A820t手機維修圖紙包括主板原理圖 尾板原理圖 點位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產業鏈分析
- 4.43 MB | 383次下載 | 免費
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 94次下載 | 1 積分
- 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強型場效應晶體管的數據手冊
- 0.11 MB | 28次下載 | 2 積分
- 8長虹液晶彩電LS29機芯的技術資料說明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191388次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論