2016-11-02 92 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; 
}