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 新增语法特性的更多相关文章

  1. C#3新增语法特性

    C#3,.Net Framework 3.5 ,Visual Studio 2008, CLR 3.0 C#3.0新引进的语法基于.Net Framework 3.5.主要引进的语法:Linq,隐式类 ...

  2. 总结常见的ES6新语法特性

    前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...

  3. 总结常见的ES6新语法特性。

    前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...

  4. 关于Java 8新引入语法特性的简要说明

    Java 8在语法上的主要改进就是新增了Lambda Expression以及Method Reference.由于官方网站的介绍稍显罗嗦,而且例子也有些复杂.我这里将提供一些更为浅显.直观的例子来帮 ...

  5. 面向对象编程-终结篇 es6新增语法

    各位,各位,终于把js完成了一个段落了,这次的章节一过我还没确定下面要学的内容可能是vue也可能是前后端交互,但无论是哪个都挺兴奋的,因为面临着终于可以做点看得过去的大点的案例项目了,先憋住激动地情绪 ...

  6. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  7. C++11中对类(class)新增的特性

    C++11中对类(class)新增的特性 default/delete 控制默认函数 在我们没有显式定义类的复制构造函数和赋值操作符的情况下,编译器会为我们生成默认的这两个函数: 默认的赋值函数以内存 ...

  8. C#新语法特性前瞻

    今天逛微软的UserVoice site发现了几个有很有用,也很可能被添加到新版C#中的语法,当然也可能被推迟到下一版,拿出来给大家分享一下. 另外还没投票的可以去为自己最想要的新特性投票,有兴趣的可 ...

  9. 自己动手为PHP7添加新的语法特性

    好文章! nikic介绍了如何向PHP添加新的语法特性,原文写的非常精彩,具体是添加in语法功能,使最终实现: <?php $words = ['hello', 'world', 'foo', ...

随机推荐

  1. jQuery中使用$.each()遍历数组时要注意的地方

    使用jQuery中 $.each()遍历数组,要遍历的数组不能为空(arry!="") 例如:           $.each(arry, function (i, item)  ...

  2. Webpack + VueJS 学习、跳坑和总结

    这篇随笔会陆续地更新下去,用于汇集一些关于Webpack的初学跳坑总结还有VueJS的基础知识. Webpack部分 ① 快速建立一个Webpack-Vue项目开发环境(4.39.1-2019/08/ ...

  3. Java中的对象都是在堆上分配的吗?

    作者:LittleMagic https://www.jianshu.com/p/8377e09971b8 为了防止歧义,可以换个说法: Java对象实例和数组元素都是在堆上分配内存的吗? 答:不一定 ...

  4. XML节点自动生成简单实例

    有些时候我们在拼装XML的过程中,因为各种拼接会感到非常的麻烦(定义变量模型,自动生成,使用XElement再去组装),我的脑袋感觉都大了,能不能有个稍微比较快捷自动随变量自动生成XML格式的方式,看 ...

  5. 翻了翻element-ui源码,发现一个很实用的指令clickoutside

    前言 指令(directive)在 vue 开发中是一项很实用的功能,指令可以绑定到某一元素或组件,使功能的颗粒度更精细.今天在翻 element-ui 的源码时,发现一个还挺实用的工具指令,跟大伙分 ...

  6. 推荐Java字节码解析工具classpy

    Classpy Classpy is a GUI tool for investigating Java class file, Lua binary chunk, Wasm binary code, ...

  7. 关于 ECMAScript、JavaScript、ES6、ECMAScript 2015

    ECMAScript 是一种规范,而 JavaScript 是对规范的实现.ECMA 是标准化组织. 最早的 JavaScript 是由 Netscape 公司开发的,并提交给 ECMA 标准化组织, ...

  8. hdfs的JAVA必会操作

    hdfs的必会操作 创建目录 //创建目录 public static void mkdir(String filePath) throws URISyntaxException, IOExcepti ...

  9. day62 Pyhton 框架Django 05

    内容回顾 1.变量 render(request,'模板文件名',{ k1:v1 }) {{ k1 }} {{ list.0 }} {{ dict.key }} {{ dict.keys }} {{ ...

  10. 【不知道怎么分类】CF 819B Mister B and PR Shifts

    题目内容 洛谷链接 定义一个全排列\(p_i\)的偏移值为\(\sum_{i=1}^{n}|p[i]-i|\). 给你一个全排列,你可以从后面拿\(k\in[0,n-1]\)个数放在前面,使得该全排列 ...