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', ...
随机推荐
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是J-Link工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash X ...
- 056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用
056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用 本文知识点:数组的实际应用 程序开发中如何应用数组? 程序代码及其运行结果: 不同数据类 ...
- 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例
019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...
- Arduino 串口库函数
库函数目录 if (Serial) available() availableForWrite() begin() end() find() findUntil() flush() parseFloa ...
- Androng,一个针对Android的Pong克隆
下载application from Android market 下载source - 532 KB 内容 IntroductionAndroid游戏开发 活动视图绘图使用CanvasAnimati ...
- ansible-playbook-roles基本使用
1. ansible-角色-roles基本使用 1.1) 创建roles目录结构 1 [root@test-1 ansible]# mkdir -p /ansible/roles/{common,n ...
- js 基础概念
一 执行上下文 和 执行上下文栈 执行上下文:一段javascript代码执行前的准备工作 问题一:js引擎遇到怎样一段代码才会做"准备工作呢"? 可执行代码类型:全局代码.函数代 ...
- 发布MeteoInfo 1.2.4
在JLaTeXMath库(http://forge.scilab.org/index.php/p/jlatexmath/)的支持下,实现了利用LaTeX语法显示特殊符号和数学公式的功能.需要在字符串首 ...
- python正则找到字符串里面的数字
totalNumbers = re.findall(r'\d+',str)
- Python常用模块之random和time
常用模块: time: 分为三种格式: 1.时间戳:从1970年1月1日0点0分0秒到现在经过的秒数 用于时间间隔的计算 import time print(time.time()) 2.字符串显示时 ...