码迷,mamicode.com
首页 > 其他好文 > 详细

扎实基础_1语法基础_泛型

时间:2020-05-22 19:00:23      阅读:51      评论:0      收藏:0      [点我收藏+]

标签: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泛型的作用

   泛型就是用来满足多种不同类型的需求

扎实基础_1语法基础_泛型

标签:vat   作用   ict   为什么   约束   generic   tostring   pre   key   

原文地址:https://www.cnblogs.com/LZXX/p/12938792.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!