扎实基础_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语法基础_泛型的主要内容,如果未能解决你的问题,请参考以下文章

扎实基础_设计模式_创建型_原型模式

扎实基础_设计模式_行为型_观察者模式(项目实战,使用委托注册事情,消除多重判断)

扎实基础_设计模式_行为型_观察者模式(项目实战,使用委托注册事情,消除多重判断)

(整理)C#基础知识_泛型的实现

扎实基础_设计模式_行为型_责任链模式

扎实基础_设计模式_结构型_单例模式