通用方法总是返回NULL [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通用方法总是返回NULL [关闭]相关的知识,希望对你有一定的参考价值。

我在我的项目中有一个通用方法(已由另一个开发人员开发)用于获取缓存;虽然我有键的值,该方法仍然返回NULL

请看一下代码:

public static C GetFromCache<C>(string key) where C : class     
    {     
       if (cache != null)
       {
          var testCache = cache.Get(key); // This variable is getting results
          C p = cache.Get(key) as C; this point value of 'p' is NULL
          return p; 
        }

        return null;
    }

方法调用:

var lstCheck = ClassName.GetFromCache< List< int >(key);

Debugger screenshot

答案

发生这种情况是因为cache.Get(key)的结果不是C类型。让我用代码解释一下:

Object name = "my-name";
var nameAsString = name as String; // name is already a String, so nameAsString = "my-name"
var nameAsRandom = name as Random; // name isn't Random, so nameAsRandom == null 

最好,

以上是关于通用方法总是返回NULL [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

安卓。片段 getActivity() 有时返回 null

为啥 findFragmentById 总是返回 null

findFragmentByTag 总是返回 null

为啥 fusedLocationProviderClient.getLast 位置总是返回 null?

findViewById(R.id.videoView) 在片段中返回 Null (Android Studio)

异常被捕后返回null设计错误[关闭]