扎实基础_1语法基础_泛型
Posted lzxx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扎实基础_1语法基础_泛型相关的知识,希望对你有一定的参考价值。
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泛型的作用
泛型就是用来满足多种不同类型的需求
以上是关于扎实基础_1语法基础_泛型的主要内容,如果未能解决你的问题,请参考以下文章
扎实基础_设计模式_行为型_观察者模式(项目实战,使用委托注册事情,消除多重判断)