标签:vat 作用 ict 为什么 约束 generic tostring pre key
1:泛型类、泛型方法、泛型接口、泛型委托
/// <summary> /// 泛型方法 /// </summary> public class GenericTest { public static void Show<T>(T tParameter) { Console.WriteLine("This is {0},parameter={1},type={2}", typeof(CommonMethod), tParameter.GetType().Name, tParameter); } } /// <summary> /// 泛型类型 就是一个类型 满足多个类型的需求 /// </summary> /// <typeparam name="T"></typeparam> public class GenericClass<T> { } public class ChildClass<S, T> : GenericClass<S>, GenericInterface<T> { } public class ChildClass1 : GenericInterface<int> { } /// <summary> /// 泛型接口 就是一个接口 满足多个多个类型的需求 /// </summary> /// <typeparam name="T"></typeparam> public interface GenericInterface<T> { } /// <summary> /// 泛型委托 就是一个委托 满足多个多个类型的需求 /// </summary> /// <typeparam name="T"></typeparam> public delegate void Do<T>();
5 泛型约束
为什么要做泛型约束 防止 类型乱传 为了类型安全
6 协变 逆变
2泛型缓存
/// <summary> /// 字典缓存:静态属性常驻内存 /// </summary> public class DictionaryCache { private static Dictionary<Type, string> _TypeTimeDictionary = null; static DictionaryCache() { Console.WriteLine("This is DictionaryCache 静态构造函数"); _TypeTimeDictionary = new Dictionary<Type, string>(); } public static string GetCache<T>() { Type type = typeof(Type); if (!_TypeTimeDictionary.ContainsKey(type)) { _TypeTimeDictionary[type] = string.Format("{0}_{1}", typeof(T).FullName, DateTime.Now.ToString("yyyyMMddHHmmss.fff")); } return _TypeTimeDictionary[type]; } }
3泛型的作用
泛型就是用来满足多种不同类型的需求
标签:vat 作用 ict 为什么 约束 generic tostring pre key
原文地址:https://www.cnblogs.com/LZXX/p/12938792.html