zoukankan      html  css  js  c++  java
  • 约束

    对泛型实例调用方法的约束,当参数类型为X时及其派生类时,才能用A方法,否则只能用...方法;当参数类型为Y时,才能用B方法,否则....

    有一个飞行技能 的类,那是不能让T为 鱼类 来调用飞行类里的方法,需要约束下该飞行类只能是鸟或恐龙里的翼龙或者什么其他的能飞的东西来调用方法。

    约束的类型: 主约束 -----类名、class、struct   ;只能有一个

                           接口约束------接口名;可以多个

                           结构约束-------new()有默认构造函数;

    关键字: where T 

     public void IsHappy<T>(T target) where T : Pet//添加了Pet类的约束,就可以在这个泛型方法中调用Pet的方法PrintName()
            {
                Console.WriteLine("Happy for "  );
                target.PrintName();//调用的这个PrintName属于Pet类
            }
     DD.IsHappy<Dog>(new Dog("KK"));//泛型方法IsHappy添加Pet约束后,输出是Pet类的PrintName()方法,而不是Dog类的PrintName()方法
     //DD.IsHappy<int>(3);//泛型方法IsHappy添加Pet约束后这句代码报错
  • 相关阅读:
    Win7 安装
    线上java排查
    spring boot
    redisson
    Jcaptca 图片
    URL重写
    gradle导出依赖的jar包
    Redis tomcat
    flex 通过htmlservices链接moss的rest(rest 的get post方式)
    java语言MySQL批处理
  • 原文地址:https://www.cnblogs.com/cicily/p/10937519.html
Copyright © 2011-2022 走看看