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约束后这句代码报错
  • 相关阅读:
    Super Jumping! Jumping! Jumping!
    glsl学习之cube
    取得某个进程CPU的占用率
    在游戏中使用“CEGUI”
    vbo 简单演示
    平行光镜面反射模型
    使用fbo来实现render to texture演示
    平行光漫反射模型
    glsl teapot 简单演示
    点光源模型
  • 原文地址:https://www.cnblogs.com/cicily/p/10937519.html
Copyright © 2011-2022 走看看