当前位置: 代码迷 >> 综合 >> C#一个精简的本地缓存
  详细解决方案

C#一个精简的本地缓存

热度:61   发布时间:2024-01-25 01:11:28.0

自己写着玩的,小项目用的,一共没几行代码,关键是内存要大

using System;
using System.Collections.Generic;namespace HelloWorld
{public class MyCache{private static Dictionary<string, object> CustomCache = new Dictionary<string, object>();//容器,参数1是键,参数2是值...//添加缓存,key是键,value是值public static void Add(string key, object value){CustomCache.Add(key, value);}//读取对应键[key]的值[value]public static T Get<T>(string key){return (T)CustomCache[key];}//判断相应键[key]的值[value]是否存在public static bool Exist(string key){return CustomCache.ContainsKey(key);}/// <summary>/// 根据[键]获取缓存[值]/// ①相应键值不存在,执行委托,查取数据返回,并存入缓存/// ②相应键值已存在,直接返回缓存里的值/// </summary>/// <typeparam name="T"></typeparam>/// <param name="key">键值</param>/// <param name="func">委托</param>/// <returns></returns>public static T FindT<T>(string key, Func<T> func){T t = default(T);//泛型对象//判断键key对应的值是否存在if (MyCache.Exist(key))//存在...{t = Get<T>(key);//返回key对应的value值}else//不存在{t = func.Invoke();//执行委托,调用函数,取出数据MyCache.Add(key, t);//存于缓存之中,用于下次调用}return t;//返回值value}}
}

 

  相关解决方案