成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET 2.0泛型詳解

開發 后端
本文向您介紹ASP.NET 2.0泛型特性。在1.X版本中,為了能適應不同類型的參數引入,我們常常需要重寫一些函數,或者常常將其object化,以達到函數的通用性。ASP.NET 2.0泛型的出現很好的解決了這個問題。 設計中,集復用性、類型安全、高效率于一身

C#2.0作為#1.X的升級版本,為我們引入了很多新的而且很實用的特性。最重要的當屬ASP.NET 2.0泛型(Generics)、匿名方法(Anonymous Methods)、迭代器(Iterators)和局部類(partial Types)。這些新特性在提供高度兼容性的同時,也在很大程度上提高了代碼的效率和安全性。

本節我們學習有關于ASP.NET 2.0泛型的內容。泛型存在的必要性:在1.X版本中,為了能適應不同類型的參數引入,我們常常需要重寫一些函數,或者常常將其object化,以達到函數的通用性。但往往帶給我們的是程序性能的下降和重復性勞動的增加。泛型的出現很好的解決了這個問題。其實簡單的講,泛型是一種可以傳遞或者靈活規范參數類型的機制。
泛型需要命名空間System.Collections.Generic的支持,可應用于類、方法、結構、接口、委托等設計中,集復用性、類型安全、高效率于一身。下面我們分別舉例來看看泛型的幾種使用方法。

1、ASP.NET 2.0泛型方法

  1. using System;  
  2. using System.Collections.Generic;   
  3.  
  4. public class GenericMethod  
  5. {  
  6. // 靜態 泛型方法  
  7. public static string Output〈T 〉(T t)  
  8. {  
  9. return "類型:" + t.GetType().  
  10. ToString() + ";值:" + t.ToString();  
  11. }  
  12. }   
  13.  
  14. public partial class Generic_Method :   
  15. System.Web.UI.Page  
  16. {  
  17. protected void Page_Load(object   
  18. sender, EventArgs e)  
  19. {  
  20. Response.Write(GenericMethod.Output 
  21. int 〉 (23) + "〈br / 〉 ");  
  22.  
  23. Response.Write(GenericMethod.Output 
  24. 〈DateTime 〉 (DateTime.Now) + "〈br / 〉 ");  
  25. }  
  26. }   

2、ASP.NET 2.0泛型抽象類

  1. using System;  
  2. using System.Collections.Generic;  
  3.  
  4. // 泛型抽象類  
  5. public abstract class GenericParent  
  6. {  
  7. // 泛型抽象方法,返回值為一個泛型,  
  8. 加一個約束使泛型X要繼承自泛型Y  
  9. public abstract X Output〈 X, Y 〉   
  10. (X x, Y y) where X : Y;   
  11.  
  12. // 泛型抽象方法,返回值為一個string類型,  
  13. 加一個約束使泛型X要繼承自IListSource  
  14. public abstract string Output2〈 X 〉   
  15. (X x) where X : System.ComponentModel.  
  16. IListSource;  
  17. }   
  18.  
  19. public class GenericChild : GenericParent  
  20. {  
  21. // 重寫抽象類的泛型方法  
  22. public override T Output〈 T, Z 〉 (T t, Z z)  
  23. {  
  24. return t;  
  25. }    
  26.  
  27. // 重寫抽象類的泛型方法  
  28. public override string Output2〈 T 〉 (T t)  
  29. {  
  30. return t.GetType().ToString();  
  31. }  
  32. }   
  33.  
  34. public partial class Generic_Abstract :  
  35.  System.Web.UI.Page  
  36. {  
  37. protected void Page_Load(object sender,   
  38. EventArgs e)  
  39. {  
  40. GenericChild gc = new GenericChild();  
  41. Response.Write(gc.Output〈 string, IComparable 〉   
  42. ("aaa""xxx"));  
  43. Response.Write("〈 br / 〉 ");   
  44.  
  45. Response.Write(gc.Output2〈 System.Data.DataTable 〉   
  46. (new System.Data.DataTable()));  
  47. Response.Write("〈 br / 〉 ");  
  48. }  
  49. }   

#p#

3、ASP.NET 2.0泛型接口

  1. using System;  
  2. using System.Collections.Generic;   
  3.  
  4. // 泛型接口  
  5. public interface IGenericInterface〈T 〉  
  6. {  
  7. T CreateInstance();  
  8. }   
  9.  
  10. // 實現上面泛型接口的泛型類  
  11. // 派生約束where T : TI(T要繼承自TI)  
  12. // 構造函數約束where T : new()(T可以實例化)  
  13. public class Factory〈T, TI 〉 :   
  14. IGenericInterface〈TI 〉  
  15. where T : TI, new()  
  16. {  
  17. public TI CreateInstance()  
  18. {  
  19. return new T();  
  20. }  
  21. }   
  22.  
  23. public partial class Generic_Interface :   
  24. System.Web.UI.Page  
  25. {  
  26. protected void Page_Load(object sender,   
  27. EventArgs e)  
  28. {  
  29. IGenericInterface〈System.ComponentModel.  
  30. IListSource 〉factory =  
  31. new Factory〈System.Data.DataTable,   
  32. System.ComponentModel.IListSource 〉();   
  33.  
  34. Response.Write(factory.CreateInstance().  
  35. GetType().ToString());  
  36. Response.Write("〈br / 〉");  
  37. }  
  38. }   

4、ASP.NET 2.0泛型委托

  1. using System;  
  2. using System.Collections.Generic;   
  3.  
  4. public class GenericDelegate  
  5. {  
  6. // 聲明一個泛型委托  
  7. public delegate string OutputDelegate  
  8. 〈T 〉(T t);   
  9.  
  10. // 定義一個靜態方法  
  11. public static string DelegateFun  
  12. (string s)  
  13. {  
  14. return String.Format("Hello, {0}", s);  
  15. }   
  16.  
  17. // 定義一個靜態方法  
  18. public static string DelegateFun  
  19. (DateTime dt)  
  20. {  
  21. return String.Format("Time, {0}",   
  22. dt.ToString());  
  23. }  
  24. }   
  25.  
  26.  
  27. public partial class Generic_Delegate :   
  28. System.Web.UI.Page  
  29. {  
  30. protected void Page_Load(object sender,  
  31. EventArgs e)  
  32. {  
  33. // 使用泛型委托  
  34. GenericDelegate.OutputDelegate〈string 〉   
  35. delegate1  
  36. = new GenericDelegate.OutputDelegate  
  37. 〈string 〉(GenericDelegate.DelegateFun);   
  38.  
  39. Response.Write(delegate1("aabbcc"));  
  40. Response.Write("〈br / 〉");   
  41.  
  42. // 使用泛型委托(匿名方法)  
  43. GenericDelegate.OutputDelegate〈DateTime 〉  
  44. delegate2 = GenericDelegate.DelegateFun;  
  45. Response.Write(delegate2(DateTime.Now));  
  46. }  
  47. }   

【編輯推薦】

  1. ASP.NET電子商務系統設計淺析(1)
  2. 基于ASP.NET圖書電子商務網站建設技術探析
  3. ASP.NET用Post方式向網頁發送數據
  4. ASP.NET 2.0部署WEB應用程序淺析
  5. ASP.NET中的HttpWorkerRequest對像
  6. 介紹ASP.NET MVC框架
    責任編輯:冰荷 來源: it55
    相關推薦

    2009-07-22 17:23:03

    XmlDataSourASP.NET 2.0

    2009-07-29 16:08:07

    ASP和ASP.NET

    2009-07-30 15:17:16

    ASP.NET 2.0

    2009-07-22 16:25:41

    ASP.NET AJA

    2009-07-24 10:14:22

    ASP.NET開發

    2009-07-28 16:57:50

    ASP.NET Ses

    2009-08-05 11:14:33

    ASP.NET ISA

    2009-07-23 13:19:51

    2009-12-14 17:50:45

    ASP.NET 2.0

    2009-07-28 14:06:28

    ASP.NET 2.0

    2009-01-07 11:38:22

    ASP.NET.NET錯誤記錄

    2009-07-22 17:21:27

    ASP.NET 2.0

    2009-07-30 14:55:43

    ASP.NET 2.0

    2009-05-11 13:48:00

    ASP.NET 2.0緩存效率

    2009-07-21 14:37:13

    Profile Pro優化ASP.NET 2

    2009-07-23 13:09:23

    2009-08-19 13:44:00

    ASP.NET Lis

    2009-07-28 13:39:44

    加載ViewStateASP.NET

    2009-08-04 10:43:59

    ASP.NET控件開發

    2009-08-04 18:10:35

    ASP.NET動態編譯
    點贊
    收藏

    51CTO技術棧公眾號

    主站蜘蛛池模板: 成人亚洲精品久久久久软件 | 在线观看视频一区 | 久久久久国产精品午夜一区 | 91网站在线观看视频 | 成人三级影院 | 日韩精品一区在线观看 | 五月综合色啪 | 福利一区视频 | 国精产品一区一区三区免费完 | 欧产日产国产精品v | 午夜理伦三级理论三级在线观看 | av毛片| 毛片久久久 | 综合色在线 | 天天夜天天操 | 国产精品欧美一区二区三区不卡 | 亚洲国产高清高潮精品美女 | 青草久久免费视频 | 影音av | 久久亚洲欧美日韩精品专区 | 理论片午午伦夜理片影院 | 超碰在线人人干 | 99re66在线观看精品热 | 国产成人精品久久二区二区91 | 中文字幕日韩一区 | 中文在线日韩 | 97精品国产97久久久久久免费 | 91精品久久久久久久久久 | xx性欧美肥妇精品久久久久久 | 九九免费| 91在线导航| 中文字幕 亚洲一区 | 99久久99| 日日草夜夜草 | 综合五月 | 国产一级在线 | 亚洲一区二区三区在线播放 | 激情一区二区三区 | 91porn在线| 欧美日韩一区二区三区视频 | 国产在线一区二区 |