空字符串异常

本文关键字:异常 字符串 | 更新日期: 2023-09-27 18:16:00

在我问我的问题之前,我需要提一下,我在网站上查找解决问题,但我没有找到任何东西。

下面是我的函数:

    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;
    }

当Token是一个包含字符串字段名的对象时:AccessToken.

当我调试代码并到达带有' ** '的行时,fbToken。AccessToken是NULL,我得到一个异常"对象引用未设置为对象的实例。"

当我在其他线程中查找时,他们建议使用字符串。,但它没有解决问题,我一直得到错误。

我将非常感谢任何帮助,提前感谢!

空字符串异常

fbToken为空,而不是fbToken.AccessToken。使用如下命令:

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

新的c# 6.0允许您执行null传播来完成此任务:

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

这样写。检查空条件操作符

if(String.IsNullOrWhiteSpace(fbToken?.AccessToken))
{
    //your stuff
}

您必须验证对象fbToken而不是其成员AccessToken

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