>

x的新特征,深远精晓C

- 编辑:www.bifa688.com -

x的新特征,深远精晓C

【转】《深远驾驭C# 叁.x的新特征》博文类别汇总

较之C# 2.0, C# 叁.x引进了1层层新的特点,为我们编程带来非常的大的便民,通过行之有效地选取那几个新特色,大家得以编写出越发简明、优雅的先后。可是这一个新特点仅仅是编写翻译器给大家耍的小花招:在编写翻译的时候进入一些需求的Code,使那些在C# 二.0角度看略显“残缺”的Code变得“完整”,实际上最终生成的Assembly和在C# 2.0时日并不曾本质的不等。为此,有个别人对那么些新天性不以为然,认为仅仅是部分表面文章。然则自个儿的理念是:既然这几个特点能给大家带来有利,干嘛不用吗?

较之C# 2.0, C# 三.x引进了一名目大多新的表征,为大家编制程序带来极大的方便,通过立竿见影地运用这么些新特征,我们能够编写出越发从简、优雅的主次。可是这么些新特点仅仅是编写翻译器给我们耍的小花招:在编写翻译的时候投入一些必需的Code,使那几个在C# 2.0角度看略显“残缺”的Code变得“完整”,实际上最终生成的Assembly和在C# 二.0时期并不曾本质的不比。为此,有个外人对那个新天性不感觉然,感到仅仅是部分表面小说。可是本身的意见是:既然那些特点能给大家带来有利,干嘛不用吗?

本连串的着重视并不是坐落借使去选取那些新特色上(实际上采纳这一个特征是很简短的),而是更加多地落在对那几个特点的兑现的牵线上边:编写翻译器到底在编写翻译的时候加了哪些额外的代码来全面那些略显“残缺”的代码。
[第1篇]Anonymous Type
Anonymous Type允许大家定义3个指标并起头化一组自由的习性列表,而那一个指标对应的Type并不是先行定义的。比方:

本种类的基本点并不是放在假使去行使那么些新特色上(实际上利用那么些特色是相当的粗略的),而是更多地落在对这个特征的兑现的牵线上边:编写翻译器到底在编写翻译的时候加了如何额外的代码来宏观那几个略显“残缺”的代码。
[第1篇] Anonymous Type
Anonymous Type允许大家定义八个对象并开始化壹组自由的天性列表,而以此目的对应的Type并不是事先定义的。比方:

   1: var v = new{ID = Guid.NewGuid(), Name= "Zhang San" };
   1: var v = new{ID = Guid.NewGuid(), Name= "Zhang San" };

 

 

[第2篇]Extension Method
通过Extension Method,我们得以不改动Type定义的前提下对其方法成员举办扩张:大家在另3个Type中定3个二个特点的Static 方法,使之视作这些Type的Extension Method,那样的主意能够象别的方法壹致的诀窍开始展览调用。LINQ的Operator,举个例子Where,From,Order by等,都以通过如此的举办定义的。

[第2篇] Extension Method
通过Extension Method,大家得以不改动Type定义的前提下对其方法成员实行扩张:大家在另多个Type中定多少个2个特点的Static 方法,使之视作那几个Type的Extension Method,那样的章程能够象此外方法一致的章程实行调用。LINQ的Operator,比方Where,From,Order by等,都以经过如此的开展定义的。

 

 

[第3篇]Lambda Expression

[第3篇] Lambda Expression

拉姆da Expression被大规模运用到LINQ中,其本质正是二个Delegate。在这1部分中,笔者将介绍拉姆da Expression是如何通过一个Delegate来促成的。

Lambda Expression被大规模运用到LINQ中,其本质正是贰个Delegate。在那有些中,笔者将介绍Lambda Expression是何等通过二个Delegate来完结的。

 

 

[第4篇]Automatically Impemented Property

[第4篇] Automatically Impemented Property

有了Automatically Implemented Property,大家能够简化古板的private 田野先生

有了Automatically Implemented Property,大家能够简化古板的private 田野先生

  • public property的品质定义格局,就如这么:

     1: public class Vector 
    
     2: {
    
     3:      public double X { get; set; }
    
     4:      public double Y { get; set; }
    
     5: }
    
  • public property的习性定义格局,就如这样:

     1: public class Vector 
    
     2: {
    
     3:      public double X { get; set; }
    
     4:      public double Y { get; set; }
    
     5: }
    

 

 

[第5篇]Object Initializer & Collection Initializer

[第5篇] Object Initializer & Collection Initializer

Object Initializer & Collection Initializer是本人将对象的开创和初步化合2为1:通过Object Initializer使用3次调用创设1个对象和初步化其性质成员,通过Collection Initializer在创设Collection对象的时候还要先导化该Collection的始发成员: 

Object Initializer & Collection Initializer是自身将对象的创设和初叶化合二为一:通过Object Initializer使用三次调用创制2个对象和初步化其性质成员,通过Collection Initializer在成立Collection对象的时候还要发轫化该Collection的开始成员: 

   1: Vector v = new Vector { X = 1, Y = 2 };          

   2: IList<string> list = new List<string> { "Zhang San", "Li Si", "Wang Wu" };
   1: Vector v = new Vector { X = 1, Y = 2 };          

   2: IList<string> list = new List<string> { "Zhang San", "Li Si", "Wang Wu" };

作者:Artech
出处:
本文版权归小编和微博共有,招待转发,但未经小编同意必须保留此段评释,且在小说页面明显地方给出原作连接,不然保留追究法律义务的职务。

作者:Artech
出处:
正文版权归小编和和讯共有,接待转发,但未经小编同意必须保留此段注明,且在篇章页面显明地方给出最初的作品连接,不然保留追究法律权利的义务。

本文由必发88手机版发布,转载请注明来源:x的新特征,深远精晓C