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

Когда Токен это объект, который включает имя строки поля: маркер доступа.

Когда я отладки кода и достигают линии с «**», когда fbToken.AccessToken является NULL, я получаю исключение «ссылка на объект не указывает на экземпляр объекта.»

When Я искал в других потоках, они предлагают использовать String.IsNullOrWhiteSpace, но это не решило проблему, и я продолжаю получать ошибку.

Я был бы очень признателен за любую помощь, спасибо заранее!

+3

'fbToken', вероятно, не имеет значения. – hofmeister

+0

Я знаю .. я уже упоминаю, что .. – Tal

+1

'if (fbToken == null || String.IsNullOrWhiteSpace (fbToken.AccessToken))' решит вашу проблему – Andrei

ответ

2

fbToken есть null, не 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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^