程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#3.0的新特性

C#3.0的新特性

編輯:C#入門知識

/*  *============================主要演示C#3.0的新特性=====================  *一、自動屬性  *二、對像和集合初始化器  *三、擴展方法  *四、Lambda表達式  * 13/6/2010 Berlin  *   */   using System; using System.Collections.Generic; using System.Linq; using System.Text;
  namespace LinqTest {
      //演示自動屬性     public class Point     {         public int X { get; set; }//自動化屬性
          public int Y { get; private set; }//帶修飾符的自動化屬性
          public int T { get; set; }     }
 
      //演示對像和集合初始化器;     class Test_45     {         Point p = new Point { X = 23, T =2};//可以通這種方式來實例化一個對像
          //初始化一個集合         List<Point> PoList = new List<Point>                                       {                                         new Point {X =2,T =3},                                         new Point {X =4,T=2},                                         new Point {X=23,T =90}                                      };              }
 
      //演示擴展方法,所謂擴展方法是指在C#3.0中,對於已經編譯的程序集,在不需要重新編譯源有代碼或不公開源代碼的程序集中添加相關方法     //點評,對於調用 第三方API,在沒有源代碼的情況下想擴展相關功能,就用它啦     //實現:用一個靜態類,靜態方法的第一個參數中傳入要擴展的類名形如:this class object
      static class ExtensionsFunction     {         //對Point 擴展了一個方法GetZeroPoint         public static  Point GetZeroPoint(this Point p)         {             return new Point { X = 0, T = 0 };         }
          //對類Test_45擴展了一個顯示自已類全名的方法         public static void ShowSelfInfo(this Test_45 obj)         {             Console.WriteLine(obj.GetType().Assembly.FullName);         }     }
 
      //使用擴展方法     public class TestExtension     {         public void TestExtenSionFuntion()         {             Point p = new Point { X = 8,T = 9 };             Test_45 t = new Test_45();
              p.GetZeroPoint();//調用了Point的一個擴展方法,注意這個方法在類Point中是沒有的
              t.ShowSelfInfo();                     }              }
      //演示Lambda表達式     //Lambda表達式是一種簡化的匿名方法     //有如下幾種表現形式     // (int x)=>{return x+1;}     //(int x)=>x+1;     //x=>x+1;     //(x,y)=>x+y;     public class LambdaTest     {         public void TestLambda()         {             List<Point> pList = new List<Point>                                          {                                             new Point {X =2,T =3},                                             new Point {X =4,T=1}                                         };
              List<Point> ppList = new List<Point>();             ppList = pList.FindAll(p => p.X > 2 && p.T < 3);         }
 
      } }

 

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved