C# 2 新增语法特性
C# 2.0 ,.NET Framework 2.0,.NET Framework 3.0,Visual Studio 2005
C#2主要添加了泛型、匿名方法,分部类型(类、结构、接口),可空类型,迭代器,属性访问控制器,方法组转换,协变和逆变,静态类、委托推断
其中最为经典的当属【泛型】
1、Generics:泛型
1 public static bool GreatTo<T>(T t,T t1) where T : IComparable
2 {
3 if (t.CompareTo(t1) > 0)
4 {
5 return true;
6 }
7 else
8 {
9 return false;
10 }
11 }
2、Anonymous methods:匿名方法
this.btnValidateCode.BeginInvoke(new MethodInvoker(() => { this.btnValidateCode.Text = "Cancel"; }));
3、Partial types:分部类型,可以将类、结构、接口等类型定义拆分到多个文件中,使用关键字partial。最常见的就是WinForm中窗体的业务部分和设计器部分
1 public partial class Form1 : Form
2 {
3
4 }
5
6
7 partial class Form1
8 {
9 /// <summary>
10 /// 必需的设计器变量。
11 /// </summary>
12 private System.ComponentModel.IContainer components = null;
13
14 /// <summary>
15 /// 清理所有正在使用的资源。
16 /// </summary>
17 /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
18 protected override void Dispose(bool disposing)
19 {
20 if (disposing && (components != null))
21 {
22 components.Dispose();
23 }
24 base.Dispose(disposing);
25 }
26
27 #region Windows 窗体设计器生成的代码
28
29 /// <summary>
30 /// 设计器支持所需的方法 - 不要
31 /// 使用代码编辑器修改此方法的内容。
32 /// </summary>
33 private void InitializeComponent()
34 {
35 this.SuspendLayout();
36 //
37 // Form1
38 //
39 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
40 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
41 this.ClientSize = new System.Drawing.Size(284, 261);
42 this.Name = "Form1";
43 this.Text = "Form1";
44 this.ResumeLayout(false);
45
46 }
47
48 #endregion
49 }
4、Nullable types:可以为Null的类型,该类可以是其它值或者null
1 public int? Age;
2 public decimal? Price;
3 public bool? Flag;
5、Iterators:迭代器
6、Getter/setter separate accessibility:属性访问控制
public string UserName { get; set; }
7、Method group conversions (delegates):方法组转换,可以将声明委托代表一组方法,隐式调用
1 public delegate void GreetHandler(string name);
2
3 public void Test()
4 {
5 GreetHandler greetHander = ChineseGreet;
6 //GreetHandler greetHander = new GreetHandler( ChineseGreet); //可以不用写成这样子
7 greetHander("jim");
8 }
9 public void ChineseGreet(string name)
10 {
11 Console.WriteLine("您好" + name);
12 }
8、Co- and Contra-variance for delegates and interfaces:委托、接口的协变和逆变
9、Static classes:静态类
C# 2 新增语法特性的更多相关文章
- C#3新增语法特性
C#3,.Net Framework 3.5 ,Visual Studio 2008, CLR 3.0 C#3.0新引进的语法基于.Net Framework 3.5.主要引进的语法:Linq,隐式类 ...
- 总结常见的ES6新语法特性
前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...
- 总结常见的ES6新语法特性。
前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...
- 关于Java 8新引入语法特性的简要说明
Java 8在语法上的主要改进就是新增了Lambda Expression以及Method Reference.由于官方网站的介绍稍显罗嗦,而且例子也有些复杂.我这里将提供一些更为浅显.直观的例子来帮 ...
- 面向对象编程-终结篇 es6新增语法
各位,各位,终于把js完成了一个段落了,这次的章节一过我还没确定下面要学的内容可能是vue也可能是前后端交互,但无论是哪个都挺兴奋的,因为面临着终于可以做点看得过去的大点的案例项目了,先憋住激动地情绪 ...
- [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性
回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...
- C++11中对类(class)新增的特性
C++11中对类(class)新增的特性 default/delete 控制默认函数 在我们没有显式定义类的复制构造函数和赋值操作符的情况下,编译器会为我们生成默认的这两个函数: 默认的赋值函数以内存 ...
- C#新语法特性前瞻
今天逛微软的UserVoice site发现了几个有很有用,也很可能被添加到新版C#中的语法,当然也可能被推迟到下一版,拿出来给大家分享一下. 另外还没投票的可以去为自己最想要的新特性投票,有兴趣的可 ...
- 自己动手为PHP7添加新的语法特性
好文章! nikic介绍了如何向PHP添加新的语法特性,原文写的非常精彩,具体是添加in语法功能,使最终实现: <?php $words = ['hello', 'world', 'foo', ...
随机推荐
- Cortex-M3双堆栈MSP和PSP+函数栈帧
为了防止几百年以后找不到该文章,特此转载 ------------------------------------------------开始转载--------------------------- ...
- pytorch和tensorflow的爱恨情仇之张量
pytorch和tensorflow的爱恨情仇之基本数据类型:https://www.cnblogs.com/xiximayou/p/13759451.html pytorch版本:1.6.0 ten ...
- VPS教程:搭建个人网盘教程—kodexplorer
kodexplorer网盘系统.Kodexplorer,也叫芒果云.可道云.kodcloud,总之名字改了不少.但其本身作为一个网盘文件系统,还是有很多可圈可点的地方. seafile.h5ai.ko ...
- Java高级特性1_流库_初体验
Java高级特性流库_初体验 面对结果编程 在编程里, 有两种编程方式, 一种是面对过程编程, 一种是面对结果编程. 两者区别如下 面向过程编程 面向过程编程需要编程程序让程序依次执行得到自己想要的结 ...
- 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象
079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...
- 源码安装IVRE
简介:IVRE(又名DRUNK)是一款开源的网络侦查框架工具,IVRE使用Nmap.Zmap进行主动网络探测.使用Bro.P0f等进行网络流量被动分析,探测结果存入数据库中,方便数据的查询.分类汇总统 ...
- 【题解】小Z的袜子
期末考试结束了,来写写blog吧 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具 ...
- 感觉学java学到自己的瓶颈期了,各种框架乱七八糟,感觉好乱。该怎么办!?
通常我们都会有这样的一个疑问! 解决办法 这时候,你需要的是分清条理,重整知识架构 GitHub开源社区有一个这样的项目,我觉得非常好,很适合Java有基础但是想进阶提升的人. 项目简介 本期介绍的开 ...
- 网站搭建-云服务器是什么-云服务器ECS是什么
学习上瘾了,本博客关闭,后期再总结整理.
- SpringBoot整合Mybatis 编译失败:找不到符号 程序包不存在
问题描述:jpa不好用,转用mybatis,配置多数据源 但是配置后无法编译mvn clean install dao层这些报错,找不到entity的包 问题解决:罪魁祸首:热部署的部分 ...