资料介绍
如果我们可以同时拥有 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语言和汇编语言混合编程实例详解 224次下载
- 华为C语言编程规范 61次下载
- Linux下C语言编程入门教程详细说明 39次下载
- 什么是C语言?C语言有哪些优势及C语言的应用资料说明
- Java程序设计教程之Java语言的基础知识概述 36次下载
- JAVA教程之面向对象程序设计语言Java的系统环境概述 0次下载
- Linux操作系统下C语言编程入门.pdf 95次下载
- 基于逻辑语言计算机软件设计(JAVA语言) 0次下载
- C语言入门经典-C语言编程 121次下载
- C语言和汇编语言混合编程方法和C语言中断处理方法 36次下载
- STM8的C语言编程说明 37次下载
- java 网络编程语言 0次下载
- C语言编程技巧 603次下载
- PLC编程语言和C语言的区别 1469次阅读
- plc编程语言与c语言的联系 c语言和PLC有什么区别 3041次阅读
- 四种编程语言之间的区别和联系 928次阅读
- vb语言和c++语言的区别 1480次阅读
- 七种编程语言的学习曲线 772次阅读
- C语言的简介和特点说明 7800次阅读
- 2019年的编程语言排行榜你知道吗 2.4w次阅读
- C语言里如何编写精确的微量延时 1615次阅读
- 学习开发环境和编程语言:汇编语言和C语言的比较 8893次阅读
- plc与C语言有什么关系_plc可以用c语言编程吗_plc的C语言编程详解 7.2w次阅读
- plc编程语言有几种_plc常用编程语言介绍 5.4w次阅读
- Java编程和c语言哪一种更有优势_C语言与JAVA的区别是什么 2.4w次阅读
- 2017最新编程语言热门排行榜 3227次阅读
- 机器人研发十大热门编程语言:Java、C/C ++、Python 5081次阅读
- arduino用什么语言编程 6.9w次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多