• 泛型


    泛型方法:就是对方法重载的优化,方法重载可以有不同的返回类型或者参数。方法重载和默认参数能会很好的优化重载的写法。

    只是在最终运行的时候,还是展开了。就是说有几个泛型调用,最终还会展开成几个泛型方法。

    泛型是个代码模板(类,接口,委托,方法),留下了类型填充的“空位”

    这是泛型缓存的基础。

    泛型缓存要有静态构造函数,是泛型类。

    枚举的描述的泛型缓存就不好做。这是字典缓存

     public static class EnumDescription
        {
            private static Dictionary<Type, string> _genericCache = new Dictionary<Type, string>();
    
            public static string GetEnumDescription<T>(this T enumValue) where T : Enum
            {
                if (_genericCache.ContainsKey(typeof(T)))
                {
                    return _genericCache.GetValueOrDefault(typeof(T));
                }
    
                else
                {
                    string value = enumValue.ToString();
                    FieldInfo field = enumValue.GetType().GetField(value);
                    object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);    //获取描述属性
                    if (objs == null || objs.Length == 0)    //当描述属性没有时,直接返回名称
                        return value;
                    value = ((DescriptionAttribute)objs[0]).Description;
                    _genericCache.Add(typeof(T), value);
                    return value;
                }
            }
        }

     另外,定义一个泛型类,它里面的静态方法(非构造函数)是没法访问的。

    气功波(18037675651)
  • 相关阅读:
    ASP.NET Core 6.0 添加 JWT 认证和授权
    mumu模拟器pin码忘记,如何找回
    4.18 进程调度模拟算法
    解决ssh $host jps bash: jps: command not found 问题
    7
    6
    1
    5
    3
    使用loadrunner运行中问题(无代码生成解决方法)
  • 原文地址:https://www.cnblogs.com/qgbo/p/11347481.html
Copyright © 2020-2023  润新知