首页 > 代码库 > 泛型2
泛型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(); } }
泛型2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。