在 ASP.Net 中,在 system.web.caching 中存储 int 的最佳方式是什么?

发布于 2024-12-29 15:23:48 字数 331 浏览 1 评论 0原文

目前,我必须将 int 转换为 string 并存储在缓存中,非常复杂

int test = 123;
System.Web.HttpContext.Current.Cache.Insert("key", test.ToString()); // to save the cache
test = Int32.Parse(System.Web.HttpContext.Current.Cache.Get("key").ToString()); // to get the cache

这是一种无需一次又一次更改类型的更快方法吗?

Currently, I have to convert int to string and store in cache, very complex

int test = 123;
System.Web.HttpContext.Current.Cache.Insert("key", test.ToString()); // to save the cache
test = Int32.Parse(System.Web.HttpContext.Current.Cache.Get("key").ToString()); // to get the cache

Is here a faster way without change type again and again?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

肥爪爪 2025-01-05 15:23:48

您可以在缓存中存储任何类型的对象。方法签名是:

Cache.Insert(string, object)

所以,插入之前不需要转换为字符串。但是,当您从缓存中检索时,您将需要进行强制转换:

int test = 123;
HttpContext.Current.Cache.Insert("key", test); 
object cacheVal = HttpContext.Current.Cache.Get("key");
if(cacheVal != null)
{
    test = (int)cacheVal;
}

这将导致原始类型的装箱/拆箱损失,但比每次都通过字符串要少得多。

You can store any kind of object in the cache. The method signature is:

Cache.Insert(string, object)

so, you don't need to convert to string before inserting. You will, however, need to cast when you retrieve from the cache:

int test = 123;
HttpContext.Current.Cache.Insert("key", test); 
object cacheVal = HttpContext.Current.Cache.Get("key");
if(cacheVal != null)
{
    test = (int)cacheVal;
}

This will incur a boxing/unboxing penalty with primitive types, but considerably less so than going via string each time.

霊感 2025-01-05 15:23:48

您可以实现自己的方法来处理它,以便调用代码看起来更干净。

public void InsertIntIntoCache( string key, int value )
{
   HttpContext.Current.Cache.Insert( key, value );
}

public int GetIntCacheValue( string key )
{
   return (int)HttpContext.Current.Cache[key];
}

int test = 123;
InsertIntIntoCache( "key", test );
test = GetIntCacheValue( "key" );

You could implement your own method that handles it so the calling code looks cleaner.

public void InsertIntIntoCache( string key, int value )
{
   HttpContext.Current.Cache.Insert( key, value );
}

public int GetIntCacheValue( string key )
{
   return (int)HttpContext.Current.Cache[key];
}

int test = 123;
InsertIntIntoCache( "key", test );
test = GetIntCacheValue( "key" );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文