泛型2
Posted HepburnXiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泛型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的主要内容,如果未能解决你的问题,请参考以下文章