C# cachemanager.contains vs cachemanager.getdata

C# cachemanager.contains vs cachemanager.getdata,c#,.net,.net-3.5,C#,.net,.net 3.5,在这种情况下,我需要检查数据是否存在于缓存中,如果存在,我需要检索数据或将其添加到缓存中 我有两个选择。一个是我可以首先调用CacheManager.Contains(key),如果它在那里,我将调用CacheManager.GetData(key),或者我可以直接调用CacheManeger.GetData(key)并检查它是否为空值。我不知道哪一个更好。在第一种方法中,这似乎是一个很好的练习,但我为同一件事打了两次电话。而在第二种方法中,我直接从缓存中检索数据,而不进行检查 这里的问题是,哪

在这种情况下,我需要检查数据是否存在于缓存中,如果存在,我需要检索数据或将其添加到缓存中

我有两个选择。一个是我可以首先调用
CacheManager.Contains(key)
,如果它在那里,我将调用
CacheManager.GetData(key)
,或者我可以直接调用
CacheManeger.GetData(key)
并检查它是否为空值。我不知道哪一个更好。在第一种方法中,这似乎是一个很好的练习,但我为同一件事打了两次电话。而在第二种方法中,我直接从缓存中检索数据,而不进行检查

这里的问题是,哪一个练习更好,哪一个表现更好?如果你能提供一些关于两者工作的见解,那么这将是非常有帮助的


谢谢:)

这两种情况没有太大区别。但第一个选项比第二个选项花费的时间稍多,第二个选项的性能要好得多,它将检索天气缓存是否有数据。然后检查它是否为空。这将消耗更少的时间。

这有点过早优化的味道。我非常怀疑性能差异是否值得关注


我个人会首先检查
Contains
,然后检索值(如果有),因为我认为这更清楚地描述了你在做什么(对维护代码的人类读者).

我正在尝试优化代码..所以我想到了这件事..我注意到的一件事是在调用.contains方法之后,如果我调用.getdata,需要1700ms+0.2ms,如果我直接调用.getdata,则需要与.contains方法相同的时间。原因可能是什么?看来是CacheManager在内部做了一些事情来获取您请求的数据。CacheManager如何存储数据?