中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解ASP.NET 2.0泛型

發布時間:2021-11-26 17:42:22 來源:億速云 閱讀:133 作者:柒染 欄目:編程語言

如何理解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泛型方法

using System;  using System.Collections.Generic;    public class GenericMethod  {  // 靜態 泛型方法  public static string Output〈T 〉(T t)  {  return "類型:" + t.GetType().  ToString() + ";值:" + t.ToString();  }  }    public partial class Generic_Method :   System.Web.UI.Page  {  protected void Page_Load(object   sender, EventArgs e)  {  Response.Write(GenericMethod.Output 〈int 〉 (23) + "〈br / 〉 ");   Response.Write(GenericMethod.Output 〈DateTime 〉 (DateTime.Now) + "〈br / 〉 ");  }  }

2、ASP.NET 2.0泛型抽象類

using System;  using System.Collections.Generic;   // 泛型抽象類  public abstract class GenericParent  {  // 泛型抽象方法,返回值為一個泛型,  加一個約束使泛型X要繼承自泛型Y  public abstract X Output〈 X, Y 〉   (X x, Y y) where X : Y;    // 泛型抽象方法,返回值為一個string類型,  加一個約束使泛型X要繼承自IListSource  public abstract string Output2〈 X 〉   (X x) where X : System.ComponentModel.  IListSource;  }    public class GenericChild : GenericParent  {  // 重寫抽象類的泛型方法  public override T Output〈 T, Z 〉 (T t, Z z)  {  return t;  }     // 重寫抽象類的泛型方法  public override string Output2〈 T 〉 (T t)  {  return t.GetType().ToString();  }  }    public partial class Generic_Abstract :   System.Web.UI.Page  {  protected void Page_Load(object sender,   EventArgs e)  {  GenericChild gc = new GenericChild();  Response.Write(gc.Output〈 string, IComparable 〉   ("aaa", "xxx"));  Response.Write("〈 br / 〉 ");    Response.Write(gc.Output2〈 System.Data.DataTable 〉   (new System.Data.DataTable()));  Response.Write("〈 br / 〉 ");  }  }

3、ASP.NET 2.0泛型接口

using System;  using System.Collections.Generic;    // 泛型接口  public interface IGenericInterface〈T 〉  {  T CreateInstance();  }    // 實現上面泛型接口的泛型類  // 派生約束where T : TI(T要繼承自TI)  // 構造函數約束where T : new()(T可以實例化)  public class Factory〈T, TI 〉 :   IGenericInterface〈TI 〉  where T : TI, new()  {  public TI CreateInstance()  {  return new T();  }  }    public partial class Generic_Interface :   System.Web.UI.Page  {  protected void Page_Load(object sender,   EventArgs e)  {  IGenericInterface〈System.ComponentModel.  IListSource 〉factory =  new Factory〈System.Data.DataTable,   System.ComponentModel.IListSource 〉();    Response.Write(factory.CreateInstance().  GetType().ToString());  Response.Write("〈br / 〉");  }  }

4、ASP.NET 2.0泛型委托

using System;  using System.Collections.Generic;    public class GenericDelegate  {  // 聲明一個泛型委托  public delegate string OutputDelegate  〈T 〉(T t);    // 定義一個靜態方法  public static string DelegateFun  (string s)  {  return String.Format("Hello, {0}", s);  }    // 定義一個靜態方法  public static string DelegateFun  (DateTime dt)  {  return String.Format("Time, {0}",   dt.ToString());  }  }     public partial class Generic_Delegate :   System.Web.UI.Page  {  protected void Page_Load(object sender,  EventArgs e)  {  // 使用泛型委托  GenericDelegate.OutputDelegate〈string 〉   delegate1  = new GenericDelegate.OutputDelegate  〈string 〉(GenericDelegate.DelegateFun);    Response.Write(delegate1("aabbcc"));  Response.Write("〈br / 〉");    // 使用泛型委托(匿名方法)  GenericDelegate.OutputDelegate〈DateTime 〉  delegate2 = GenericDelegate.DelegateFun;  Response.Write(delegate2(DateTime.Now));  }  }

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

温宿县| 寻甸| 山阳县| 大竹县| 镇巴县| 大同县| 河曲县| 高雄市| 弥渡县| 镶黄旗| 阳朔县| 探索| 榆中县| 岑溪市| 民乐县| 浙江省| 和平县| 柯坪县| 商都县| 莒南县| 宜黄县| 惠州市| 分宜县| 泸州市| 鄱阳县| 大同市| 通渭县| 定西市| 内江市| 孟州市| 房山区| 桓仁| 潼南县| 嘉祥县| 新密市| 肥乡县| 太白县| 普兰店市| 若羌县| 梁山县| 巩留县|