C# 中的泛型总结

来源:互联网 发布:mac python开发环境 xp 编辑:程序博客网 时间:2024/06/08 01:04

.NET中的泛型功能相当强大,它对实现类型安全和代码重用都有很大的作用。现在将泛型的知识整理如下:

1、概念:泛型是将类型作为参数传递给类、方法、委托;

2、泛型的类型约束:是对参数类型进行约束限制,在需要使用参数类型的特定功能时,约束是必须的。如在泛型类中,需要使用参数类的一个方法时,则必须指定这个参数类是实现了一个特定的接口或源自具体的基类。约束的语法为:public class Master<T> where T : Employee{}
在应用 where T : class 约束时,避免对类型参数使用 ==!= 运算符,因为这些运算符仅测试引用同一性而不测试值相等性。即使在用作参数的类型中重载这些运算符也是如此。下面的代码说明了这一点;即使 String 类重载 == 运算符,输出也为 false。

public static void OpTest<T>(T s, T t) where T : class
{
    System.Console.WriteLine(s == t);
}
static void Main()
{
    string s1 = "foo";
    System.Text.StringBuilder sb = new System.Text.StringBuilder("foo");
    string s2 = sb.ToString();
    OpTest<string>(s1, s2);
}
3、泛型类的继承:原则:要求子类对应于父类的泛型参数更具体(个人理解),如父类型泛型参数,而子类没有(需要显示指定)、父类对泛型参数有约束而子类没有、父类的泛型参数比子类多,这些都是错误的,这时,子类可以从封闭式(将泛型参数指定为一个具体的类型)基类继承、

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三星c5玩王者荣耀卡怎么办 三星s8背部碎了怎么办 保修期内发动机坏了怎么办 6s主板进水了怎么办 新买的狗晚上叫怎么办 官网手机坏了怎么办 小米商城买手机不发货怎么办 小米商城分期额度不够怎么办 京东买家未退款怎么办 京东自营不退款怎么办 苏宁易购的无门槛15元怎么办 小米5shome键失灵怎么办 苹果电量用的快怎么办 苹果5s掉电快怎么办 小米5s返回键失灵怎么办 苹果5s漏电是怎么办 苹果6s手机漏电怎么办 5s返回键失灵怎么办 苹果5s返回键失灵怎么办 小米5返回键失灵怎么办 小米手机返回键失灵怎么办 萍果6splus关机键失灵怎么办 苹果5s很快没电怎么办 天猫分期付款没有花呗怎么办 淘宝花呗分期额度不够怎么办 支付宝余额支付超限怎么办 想分期花呗不够怎么办 来分期提现不了怎么办 帮朋友分期手机他不还钱怎么办 手机分期套现被骗了怎么办 学生既有分期办手机被骗怎么办? 京东刚买完东西第二天降价了怎么办 微信上买东西不给退货怎么办 微信买东西转红包被骗怎么办 买手机分期被骗了怎么办 苹果手机摔弯了怎么办 6s主板摔弯了怎么办 京东显示器坏了怎么办 苹果6s手机弯了怎么办 苹果手机变弯了怎么办 苹果手机屏幕摔碎了怎么办