2016-11-02 60 views
-1

在我问我的问题之前,我需要提到的是,我抬起头在网站上解决问题,但我没有找到任何东西。空字符串异常

这里是我的功能:

public string GetAccessToken(int agencyId) 
    { 
     string retrunString = null; 
     Token fbToken = tokenMgr.Get(agencyId, "FacebookInsights"); 
     if (String.IsNullOrWhiteSpace(fbToken.AccessToken)) ** 
      return retrunString; 
     else 
      return fbToken.AccessToken; 
    } 

当令牌是一个对象,其中包括一个字符串字段名称:的accessToken。

当我调试的代码,并与“**”时fbToken.AccessToken为NULL,我得到一个异常到达行“对象引用不设置到对象的实例。

当我抬头看他们建议使用的其他线程String.IsNullOrWhiteSpace,但它没有解决问题,我不断收到错误。

我将不胜感激任何帮助,提前致谢!

+3

'fbToken'可能为空。 – hofmeister

+0

我知道..我已经提到.. – Tal

+1

'if(fbToken == null || String.IsNullOrWhiteSpace(fbToken.AccessToken))'将解决您的问题 – Andrei

回答

2

fbToken为空,而不是fbToken.AccessToken。使用这样的事情:

if (fbToken == null || String.IsNullOrWhiteSpace(fbToken.AccessToken)) 

新的C#6.0允许你这样做null propagation做到这一点还有:

if (String.IsNullOrWhiteSpace(fbToken?.AccessToken)) 
0

您必须验证对象fbToken,而不是他的成员AccessToken

public string GetAccessToken(int agencyId) 
{ 
    var fbToken = tokenMgr.Get(agencyId, "FacebookInsights"); 
    return (fbToken == null) ? null : fbToken.AccessToken; 
}