Implement deconstructor for CacheResult
See this article:
https://codewala.net/2018/03/20/using-deconstructors-in-c-7-0/
It should work like this:
var (hasValue, value) = cache.Get<MyValueType>("partition", "key");
When there is no value, default value for specified type should be returned.