C#语言的新特性及相关信息
.ENT版本
NET 2.0 :CLR, WinForms ,Wed Services,ASP.NET
NET 3.0 :WCF,WF,WPF,CardSpace
NET 3.5 :LINQ ,AJAX,REST
.NET版本及开发工具和语言
| 2002 | 2003 | 2005 | Studio | 2008 | |
| 开发工具 | Visual Studio 2002 | Visual Studio 2003 | Visual Studio 2005 | Visual Studio 2005+扩展 | Visual Studio 2008 |
| 语言 | C#1.0 VB.NET(V7.0) | C#1.1 VB.NET(V7.1) | C#2.0 VB.NET(V8.0) | C#1.0 VB.NET(V7.0) | C#1.0 VB.NET(V7.0) |
| 框架 | .NETFX v1.0 | .NETFX v1.1 | .NETFX v2.0 | .NETFX v3.0 | .NETFX v3.5 |
| CLR | CLR v1.0 | CLR v1.1 | CLR v2.0 | CLR v2.0 | CLR v2.0 |
C#新特性
自动属性个属性访问器的保护级别
class Test1
{
Private int_id;
public int_id
{
get{ return_id;}
set{ _id=value;}
}
//访问器带有保护级别的自动属性
public int ID{get;set;}
}
可空类型
值类型变量为"null",C#语言以前只有引用类型才可以赋值为"null"
System.Nullble<T>结构体成员
名称 说明
构造函数
Nullable<T> 初始化Nullable<T>结构体并为其制定制方法
Equals 比较跟传入对象是否相等
GetHashCode 返回当前对象值的Hash码
GetType 获取当前实例类型
GetValueOrDefault 获取对象的值或默认值
ToString 以文本符串的形式返回当前对象的值
运算符
Explicit 返回Nullable<T>的值
Implicit 创建NUllable<T>对象,然后给其赋值
属性
HasValue 当前对象是否有值
Vlaue 当前对象的值
泛型
优点:线程安全,不用类型转化.执行速度快.
缺点:H函数或类的通用化问题.
对象和集合初始化器
对象初始化器由一些成员初始化去组成,包含在花括号中间,用逗号分隔.
集合初始化器实现了泛型System.Collections.Generic.ICollections<T>接口,
并且指定了T的类型,那么就可以使用集合初始化器来初始化.
匿名函数
匿名类型一般出现在LINQ的select子句中,用来投影筛选出的数据.
匿名类型创建属性只读的,匿名类型的名称和属性数据类型有编译器随机制定或自动推断.
匿名类型不允许包含除了属性之外成员.
多个匿名函数具有相同的顺序,相同数量个种类的属性成员,编译器会将这些匿名类型视为相同类型,并且他们共享编译器生成的类型信息.
扩展方法
扩展方法是一种建立在非泛型,非嵌套的静态类中特殊的静态方法.
不用继承对象增加方法
在继承关系链中,我们通常继承一个对象之后子类进行拓展方法.
在某此情况下,父类允许继承通过拓展方法来实现,非继承方法的添加.
匿名方法和Lamdba表达式
匿名函数是一种特殊的代理,它把代码体直接关联在代理类型上,而不是常见的关联方法名.
Lamdba表达式让函数执行更加简单.
使用var=>接受Lamdba函数的返回值
Lamdba表达式=>为了匿名函数的更好调用.
C#语言的新特性及相关信息的更多相关文章
- Vue3的新特性及相关的Composition API使用
首先 创建项目 Vue3 Vue3 相较于Vue2 的6大亮点: 1 性能快. 2 按需编译 体积更小 3 提供了组合API 类似于react 的React Hooks 4 更好的Ts支持 5 暴露了 ...
- Java8新特性-日期相关类操作
JDK8以前使用SImpleDateFormate类格式化日期,因为在SImple DateFormate中存在Calendar实例引用,而在caleander中得establish中存在clear( ...
- Java 8新特性终极指南
目录结构 介绍 Java语言的新特性 2.1 Lambdas表达式与Functional接口 2.2 接口的默认与静态方法 2.3 方法引用 2.4 重复注解 2.5 更好的类型推测机制 2.6 扩展 ...
- JAVA8 十大新特性详解
前言: Java8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章, 例如Playing with Java ...
- java8新特性全面解析
在Java Code Geeks上有大量的关于Java 8 的教程了,像玩转Java 8--lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Java ...
- java8 新特性
[转载]:http://www.importnew.com/11908.html 本文由 ImportNew - 刘 家财 翻译自 javacodegeeks.欢迎加入翻译小组.转载请见文末要求. 编 ...
- iOS开发——新特性OC篇&Objective新特性
Objective新特性 Overview 自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时, ...
- [转] Java 8的新特性
简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的例子 ...
- Java 8 新特性终极版
声明:本文翻译自Java 8 Features Tutorial – The ULTIMATE Guide,翻译过程中发现并发编程网已经有同学翻译过了:Java 8 特性 – 终极手册,我还是坚持自己 ...
随机推荐
- 禁用页面及页面所有frame内的右键菜单
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD& ...
- 服务器端打开office然后采用虚拟打印 转换成pdf
服务器端打开office然后采用虚拟打印 转换成pdf [WebMethod] public bool ConvertWordTOPDF(string WordPath) { bool ret=fal ...
- POJ 2289 Jamie's Contact Groups(多重匹配+二分)
题意: Jamie有很多联系人,但是很不方便管理,他想把这些联系人分成组,已知这些联系人可以被分到哪个组中去,而且要求每个组的联系人上限最小,即有一整数k,使每个组的联系人数都不大于k,问这个k最小是 ...
- Seasar2框架:AOP
Seasar2是由日本人开发的一个框架.它通过自己定义的规约,很大程度上地减少了设定代码.但是由于这个原因,导致了框架学习初期会有比较大的跨越. AOP例子: Greeting.java packag ...
- Binary Tree Inorder Traversal ——LeetCode
Given a binary tree, return the inorder traversal of its nodes' values. For example:Given binary tre ...
- zoj 3365 灵活数字规律
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3365 #include <cstdio> #incl ...
- getting start with storm 翻译 第八章 part-2
转载请注明出处:http://blog.csdn.net/lonelytrooper/article/details/12435641 The Bolts 首先我们看一下该topology中的标准bo ...
- 编写一个方法,输入DOM节点,返回包含所有父节点的一个数组
编写一个方法,输入DOM节点,返回包含所有父节点的一个数组 function getParentsNodes(element) { var parents = []; var getParentsNo ...
- WinFrom玩转config配置文件
本文转载:http://www.dotblogs.com.tw/sam319/archive/2010/01/01/12753.aspx 有時候我們希望程式可以記下使用者的設定 下次開啟時可以繼 ...
- caffe源代码分析--math_functions.cu代码研究
当中用到一个宏定义CUDA_KERNEL_LOOP 在common.hpp中有. #defineCUDA_KERNEL_LOOP(i,n) \ for(inti = blockIdx.x * bloc ...