用泛型类实现缓存

在实现缓存的时候,我们很多时候采用的是  IDictionary < Tkey,TValue > 实现的,但是我们还可以采用一个更好的方式实现缓存,性能还比较好,物美价廉,泛型缓存。

我们首先写一个泛型类:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1
{
    public class GenericClass<T>
    {
        private static string GenericCache = null;
        static GenericClass() //静态类,在泛型类第一次传入具体的类型进来的时候,执行。
        {
            GenericCache = $"{typeof(T).FullName}";
        }
        public static string GetData()
        {
            return GenericCache;
        }
    }
}

测试:

using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
           
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine($"begin--------{i}--------");

                Console.WriteLine(typeof(GenericClass<int>)); //查看类型的名称
                Console.WriteLine(typeof(GenericClass<string>)); //查看类型的名称
                Console.WriteLine(typeof(GenericClass<DateTime>)); //查看类型的名称
                Console.WriteLine(typeof(GenericClass<object>)); //查看类型的名称

                Console.WriteLine($"end--------{i}--------");

                Console.WriteLine($"");
                Console.WriteLine($"");
                Console.WriteLine($"");
            }
            Console.ReadLine();
        }
    }
}

运行结果:

根据结果得出:颜色相同的类型全是一样的。

在循环第一次时,已经为每种类型生成了副本,当第二次循环时,直接使用之前的对象。

原文地址:https://www.cnblogs.com/huaan011/p/14246431.html