• 泛型2


     泛型类、泛型方法,泛型返回,泛型委托、泛型接口

        public class GenericC<T,Sunray>
        {
            public static void Show<X,S,W,Eleven>(X tParameter,S sParameter)
            {
    
            }
            public delegate void NothingDelegate<S>();
        }

    泛型类:当我们要用一个类表示多个对象时,要用到泛型类;泛型接口同理
    一个类要实现泛型接口:1. 指定接口的泛型类型 2.定义成 泛型类,但是泛型类型要一致

    public interface IShow<T>
        {
            void Show(T tParameter);
        }
    
        public class Child<T>: IShow <T> //IShow<int>
        {
            public void Show(T tParameter)
            {
                throw new NotImplementedException();
            }
    
            public void Show(int tParameter)   //如果用IShow<int>这种方式,那么实现方法的时候参数也指定成int
            {
                throw new NotImplementedException();
            }
        }
    
        public class Boy<T>:GenericC <T,int>  //Boy:GenericC<int,int>指定类型
        {
    
        }

    泛型约束

     public class Constraintes
        {
            /// <summary>
            ///  约束后,可以在方法里面直接使用该类型的属性和方法
            ///  约束后,只能传递People类型或其子类
            /// 类型约束只能有一个、接口约束可以有多个
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="tParameter"></param>
            public static void Show<T>(T tParameter) where T:People,ISports ,IDisposable ,new()
            {
                Console.WriteLine("{0}   {1}", tParameter.Id, tParameter.Name);
                tParameter.Pingpang();
                tParameter.Dispose();
                T t = new T();
            }
    
            public static void ShowInterface<T>(T tParameter) where T : ISports,IDisposable 
            {
                tParameter.Pingpang();
            }
    
            public static T Get<T>()  
                //where T : class//表示引用类型
                //where T: struct //表示值类型//值类型没有统一的默认值
                where T:new() //默认构造函数约束,表示T一定有一个无参数的构造函数
            {
                //return null;
                //return default(T);//default关键字,根据实际类型,返回默认值
                return new T();
            }
        }
  • 相关阅读:
    uva 11248 最大流 ISAP
    【力扣】133. 克隆图
    【力扣】125. 验证回文串
    【力扣】130. 被围绕的区域
    【力扣】337. 打家劫舍 III
    【力扣】104. 二叉树的最大深度-及二叉树的遍历方式
    【力扣】392. 判断子序列
    【力扣】95. 不同的二叉搜索树 II
    【力扣】120. 三角形最小路径和
    【力扣】两个数组的交集 II
  • 原文地址:https://www.cnblogs.com/xiao9426926/p/6231792.html
Copyright © 2020-2023  润新知