如何理解ASP.NET 2.0泛型
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,如何理解ASP.NET 2.0泛型,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C#2.0作为#1.X的升级版本,为我们
千家信息网最后更新 2025年11月11日如何理解ASP.NET 2.0泛型
如何理解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)); } }看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
方法
类型
委托
接口
函数
静态
安全
内容
参数
版本
特性
学习
帮助
支持
不同
实用
很大
清楚
重要
必要
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
lol切换不了服务器
生活时遇到的网络安全问题
乡镇网络安全周宣传宣传横幅
软件开发资金来源
苏州软件开发定制外包
调查问卷怎么看数据库
冒险岛挖矿软件开发
闵行区优势网络技术诚信服务
服务器运维多少钱一次
一千个转录组数据库
网络安全密码安全手抄报
远程服务器可以承载的人数
网络安全消防安全图画
研究所网络安全应急预案
宁波市政管理软件开发
如何关掉网络安全防护
机关网络安全宣传周宣传报道
mysql系统中的数据库
互联网 echo服务器
计算机网络技术论文前言
如何警惕手机网络安全
互联网科技年会节目
日立服务器怎么查故障代码
互联网企业是科技股吗
闵行区优势网络技术诚信服务
数据库原理试卷分析
部队官兵网络安全意识
中欧网络安全原则和体系
服务器密码stator
xml更改默认数据库