framework各版本新特性(为面试准备)
菜鸟D估计描述这些新特性的文章都是烂大街的货色,之所以拿出来分(e)享(xin)一下,有两个原因:1.当年面试的时候有人问到,我不知道该怎么回答;2.项目需要发布了,但是考虑到framework的版本兼容性——是否需要降版。
framework2.0:
代码片,重构,调试,可空值类型,空合并运算,多维数组,匿名方法,部分类。
代码片:将一段代码编辑成一个缩写,使用缩写让IDE自动添加已经定义的一段代码。(个人认为是IDE的功能)
重构:重命名方法,封装字段,封装方法,封装接口等改变代码结构的功能,优化代码。(个人认为是IDE的功能)
调试:支持debug时修改代码(个人认为是IDE的功能)
可空值类型:int?,Nullable<int>
空合并运算:AA??BB,AA是否为空,为空则使用BB;不为空则使用AA。关键字是??
int[][] nArrayHeight =
{
new [] {, }, new [] {, , }, new [] {, , , },
new [] {, , , , }
};//交错数组,数组的数组
int[,] arrayA = { { , , }, { , , } };//二维数组
int[, ,] arrarB =
{
{{, , , , }, {, , , , }, {, , , , }, {, , , , }},
{{, , , , }, {, , , , }, {, , , , }, {, , , , }},
{{, , , , }, {, , , , }, {, , , , }, {, , , , }}
}; //三维数组
public delegate void IntDelegate(int x);
IntDelegate d1 = delegate(int p) { Console.WriteLine(p); };
在使用不带参数和返回值的匿名方法定义时,需要注意以下两点:
1.如果在你的匿名方法中需要对参数进行处理,那么你不能使用不定义参数列表的声明方式。也就是在定义匿名方法的时候,需要给出参数列表。
部分类:partial关键字 将一个类的内容放在不同的cs文件中(前提是同一个命名空间),编译时将不同的cs文件中的部分类编译在一起。
framework3.0,3.5:
Linq,lambda表达式,var类型推断,自动属性,对象初始化,集合初始化,扩展方法,匿名类型,ASP.NET Ajax
Linq:语言集成查询
int[] scores = new int[] { , , , };
IEnumerable<int> scoreQuery =
from score in scores
where score >
select score;
lambda表达式:用一种新的写法将方法赋值给委托,与匿名方法相似
delegate String strDelegate(string x);
strDelegate lambda = a => { return a + "......"; };
var类型推断:不必清楚的知道是那种类型,由编译器在编译时进行推断,常在foreach中见到
private int _age;
public int Age { get { return _age; } set { _age = value; } } //这样非常清楚的看到属性其实是提供两个方法的“集合”
public int Age{get;set;};//(输入“prop”按tab键自动生成,其实是通过代码片来实现的)
对象初始化:UserInfo model = new UserInfo { id = Person.id, name =Person.name, age =Person.age };
集合初始化:与对象初始化类似, List<UserInfo> list = new List<UserInfo> {new UserInfo{age=1,name="Name",id=1}, new UserInfo{age=2,name="Name",id=2} };
扩展方法:它允许改变一个类,但是不需要源码,扩展方法是静态的。
public static class Extention
{
public static string toJsons(this object o)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(o);
}
}
注意:第一个参数是要扩展的类型,前面必须有this。扩展方法第一个参数在调用时不必考虑,即从第二个参数开始才是调用时的参数列表。
匿名类型:可以隐式类型化变量,使用var和new关键字来实现。
var Person = new { id = 1, name = "yourName", age = 22 };
UserInfo model = new UserInfo { id = Person .id, name =Person.name, age =Person .age };
ASP.Net Ajax:页面的局部刷新
framework4.0:
并行计算,动态类型,命名参数和可选参数
由于4.0版本新特性菜鸟D很少使用,无法描述,大家自己看吧。
http://www.cnblogs.com/webabcd/archive/2010/06/29/1767212.html
framework4.5:(还没用到...)
http://msdn.microsoft.com/zh-tw/library/ms171868.aspx
----------------------------------------华xie丽e的分割线-----------------------------------------------
题外话:
本文并未详细的描述framework各版本的新特性,只是简要介绍,正如标题所述为了应付一下面试。菜鸟D当年的面试,这个问题的答案是:我只用过3.5,所以对各个版本间的差异不了解。所以只好和面试官说“沙扬娜拉”了。
菜鸟D希望这篇文章对您有所帮助。
framework各版本新特性(为面试准备)的更多相关文章
- .Net Framework 各个版本新特性总结 (一)
.Net Framework 4.5 新特性 最近面试时又看到有问.Net Framework 新特性的问题,一时被问到了.平时也是拿起来就用,新版本出来了,新特性也就是瞄一眼,也没去仔细查看.这次干 ...
- 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性
[索引页][源码下载] 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性 作者:weba ...
- Atitit.c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结
Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系1 2. paip.----------- ...
- c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结【转载】
引用:http://blog.csdn.net/attilax/article/details/42014327 c# .net 3.5 4.0 各个版本新特性战略规划总结 1. ---------- ...
- C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...
- Atitit opencv版本新特性attilax总结
Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...
- Atitit mac os 版本 新特性 attilax大总结
Atitit mac os 版本 新特性 attilax大总结 1. Macos概述1 2. 早期2 2.1. Macintosh OS (系统 1.0) 1984年2 2.2. Mac OS 7. ...
- IOS第三天-新浪微博 - 版本新特性,OAuth授权认证
*********版本新特性 #import "HWNewfeatureViewController.h" #import "HWTabBarViewController ...
- 【开源】OSharp3.3框架解说系列:重新开源及3.3版本新特性
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
随机推荐
- iOS开发 调用系统相机和相册 分类: ios技术 2015-03-30 15:52 65人阅读 评论(0) 收藏
调用系统相机和相册 (iPad,iPhone) 打开相机:(iPad,iPhone) //先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourceType设定为 ...
- 浅谈IOS8之size class 分类: ios技术 2015-02-05 19:06 62人阅读 评论(0) 收藏
文章目录 1. 简介 2. 实验 3. 实战 3.1. 修改 Constraints 3.2. 安装和卸载 Constraints 3.3. 安装和卸载 View 3.4. 其他 4. 后话 以前和安 ...
- Less-css预处理编译
node编译 第一步:https://nodejs.org/en/ 到node官网下载最新的node 第二步:和普通软件一样把node安装好 第三步:运行-cmd,准备安装less 全局安装(整个电 ...
- bitmap资源回收
这个问题哎,困扰本宫一天! bitmap不完全解决method: http://blog.csdn.net/hahahacff/article/details/8540942 http://blog. ...
- onethink部署时后台登陆的问题
情况:本地开发后,上传到服务器时,无法登陆后台. 原因:用户的读取数据库的配置与应用的配置 分别在2个地方.而一般我们只记得修改一处配置. 解决:找到application/user/conf/con ...
- java域名解析
DNS原理:http://amon.org/dns-introduction.html 根域:就是所谓的“.” 根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技 ...
- Beautifulsoup 和selenium 的查询
Selenium There are vaious strategies to locate elements in a page. You can use the most appropriate ...
- MyEclipse 显示行标
方法一:在行的显示行标位置(行前),右键->Show Line numbers 方法二:Window->preferences->General->editor->tex ...
- UWP 中实现一个颜色选择器 UWPColorPickerControl
最近在实现一个远程数字白板时,发现UWP平台上颜色选择不方便,因此自己动手写了一个. 效果图 实现 <UserControl x:Class="UWPColorPickerLibrar ...
- spark中数据的读取与保存
1.文本文件 (1)读取文本文件 JavaRDD<String> input =sc.textFile(dir) (2)保存文本文件 result.saveAsTextFile(dir)) ...