在上一篇“《ASP.NET MVC企业级实战》(二)MVC开发前奏”中跟随作者大概了解了一些C#3.0和3.5中的新特性。本篇继续以这样的方式来学习C#中的一些特性。

 

一、C#3.0/3.5新特性(续)

a)Lambda表达式

Lambda表达式的本质就是匿名函数,基于数学中的λ演算而得名,直接对应其中的labmda抽象,是一个匿名函数,可以包含表达式和语句,并且可用于创建委托或表达式树类型。Lambda表达式的运算符为=>,读作goes to,具有与“=”相同的优先级。

Lambda表达式的基本形式为(inputparam)=> expression,例如(x,y)=>x==y;在只有一个参数时可以省略括号。lambda表达式的演化如下:

在原始写法中可以使用var类型推断,但后面的写法必须指定签名类型了。

b)标准查询运算符(SQO)

标准查询运算符时定义在System.Linq.Enumerable类中的50多个为IEnumerable<T>准备的扩展方法,这些方法用来对集合进行筛选、投影、聚合、排序等操作。

Where筛选集合,需要为where提供提供一个带bool返回值的筛选器,如图,匿名方法、委托、lambda表达式都可作为筛选器。

Select查询投射,返回的是IEnumerable<TResult>类型的集合。

Count数量统计。

OrderBy排序,还有OrderByDescending,ThenBy等,OrderBy后还可以继续OrderBy,ThenBy不是必须的。

延迟加载与即时加载,Where方法就是延迟加载的(Select也是),在通过ORM框架操作数据库时,使用Where方法只是在后续生成的SQL语句中增加了相应的条件,返回的是DbQuery对象,在这个对象上可以继续添加别的查询条件,最后在使用查询结果时(ToList、ToArray等)一次性查询数据库。

如果使用FindAll代替Where,会即时加载。延迟加载实际上是将SQL的生成与执行分开进行,这样可以减少与数据库的交互,有助于提高性能。

c)LINQ

linq查询表达式是与SQL风格接近的代码,linq编译时会转换成标准查询运算符。以from开始,以select或group by子句结尾,输出的是一个IEnumerable<T>或IQueryable<T>集合。简单使用一下,要达到了解的程度还远远不够:

二、 C#4.0新特性

a)可选参数和命名参数

可选参数接触较多,可以为某个参数指定默认的值,这样这个调用方法时这个参数就不是必须的了。

而通过命名参数的传参方式,实参顺序可以与形参的不同。

b)Dynamic特性

这与ViewBag类似,都是动态类型。

三、作者在最后还提了一下C#5.0的async、await特性,针对多线程和异步的,这些暂时不做了解了。

学习资料:ASP.NET MVC  企业级实战 by 邹琼俊

欢迎关注公众号【菜鸟程序员成长记】

《ASP.NET MVC企业实战》(三)MVC开发前奏的更多相关文章

  1. 《ASP.NET MVC企业实战》(二) MVC开发前奏

    ​ 在上一篇“<ASP.NET MVC企业级实战>(一)MVC开发前奏”中记录了作者介绍的一些比较实用的VS使用方法以及C#2.0中添加的新特性.本篇继续大概了解之后版本的一些新特性.   ...

  2. 《ASP.NET MVC企业实战》(一) MVC开发前奏

    一.工具和方法 学到了一些没用过的工具和方法: a)删除多余的using指令并排序:一个类头部的using一般会有很多用不到的,在完成类的编写后,可以右键选择”组织using”来删除没用的using并 ...

  3. asp.net mvc企业实战技能汇总

  4. PHP之MVC项目实战(三)

    本文主要包括以下内容 标准错误错误处理 http操作 PDO 文件操作 标准错误错误处理 PHP在语法层面上发生的错误 两个过程: 触发阶段(发生一个错误) 处理阶段(如何处理该错误) 触发阶段 系统 ...

  5. ASP.NET MVC企业级实战目录

    电子书样稿 (关注最新进度,请加QQ群:161436236) ASP.NET MVC企业实战第1章 MVC开发前奏.pdf ASP.NET MVC企业实战第10章 站内搜索.pdf 已经好长一段时间没 ...

  6. 应用程序框架实战三十三:表现层及ASP.NET MVC介绍(二)

    最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和Asp.net Mvc,我将在本篇讨论一些 ...

  7. 应用程序框架实战三十:表现层及ASP.NET MVC介绍(一)

    本文将介绍表现层及ASP.NET MVC的一些要点,特别是ASP.NET MVC的一些抽象和封装技巧,如果你对MVC还不了解,可以参考<ASP.NET MVC4 高级编程>,作者Jon G ...

  8. ASP.NET MVC企业开发的基本环境

    ASP.NET MVC企业开发的基本环境[资源服务器概念] 学完了ASP.NET MVC4 IN ACTION 六波以后 企业开发演习 标签:AaronYang  茗洋  EasyUI1.3.4   ...

  9. 【AaronYang第一讲】ASP.NET MVC企业开发的基本环境[资源服务器概念]

    学完了ASP.NET MVC4 IN ACTION 六波以后 企业开发演习 标签:AaronYang  茗洋  EasyUI1.3.4   ASP.NET MVC 3 本篇博客地址:http://ww ...

随机推荐

  1. JS应用实例2:轮播图

    在学习轮播图之前,要先会切换图片: 找三张图片,命名1.jpg,2.jpg,3.jpg 示例: <!DOCTYPE html> <html> <head> < ...

  2. Shell-5--位置参数变量

  3. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 1.操作系统环境配置

    1.OpenStack示例的架构介绍 1.1 各节点介绍 (1)控制节点(controller)控制节点(controller)上运行身份服务,镜像服务,计算节点管理,网络管理,各种网络代理和仪表板. ...

  4. OC学习3——C语言特性之指针

    1.指针是C语言中的一个非常重要的概念,实际上,OC系统类的变量.自定义类的变量等都是指针.定义指针变量的语法格式如下,其中*代表一个指针变量,整个语法代表定义一个指向特定类型的变量的指针变量.注意: ...

  5. windows中的常用Dos命令

    # __切换盘符目录__ E/D: # 从C盘切换到E盘或者D盘# __切换到指定文件夹下__cd folder_name(指定文件夹名--相对/绝对路径)cd .. # 返回上一级目录cd / # ...

  6. ffmpeg 视频实现各种特效

    直接上命令: //渐入i in.mp4 -vf fade=in:0:90 out.mp4                 //黑白                    i in.mp4 -vf lu ...

  7. ajax接口和后台交互

    //定义一个公众处理ajax的方法 function handelAjax(url,method,parm,callback) { $.ajax({ url:url, type:method, dat ...

  8. 【PaddlePaddle】自然语言处理:句词预测

    前言 预测词汇的相关性算是自然语言中的HelloWolrd.本文主要根据百度PaddlePaddle示例word2vec,对句子中下一个单词的预测.该示例使用4个词语来预测下一个词. 1. 数据集以及 ...

  9. python之发送邮件~

    在之前的工作中,测试web界面产生的报告是自动使用python中发送邮件模块实现,在全部自动化测试完成之后,把报告自动发送给相关人员 其实在python中很好实现,一个是smtplib和mail俩个模 ...

  10. Kaggle-tiantic数据建模与分析

    1.数据可视化 kaggle中数据解释:https://www.kaggle.com/c/titanic/data 数据形式: 读取数据,并显示数据信息 data_train = pd.read_cs ...