C# - 对象引用未设置为对象实例

5

我正在尝试从Twitter获取推文

但我遇到了一个错误

对象引用未设置为对象的实例

代码:

    public void Call_Tweet_Update()
    {
        var service = new TwitterService(Consumer_Key, Consumer_Secret);
        service.AuthenticateWith(Access_Token, AccessToken_Secret);

        var tweets = service.ListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions { Count = 200 });
        string[] twt_id = new string[50];
        long id = 0;
        int i = 0;
        int increment = 0;
        string twtid;
        string screenname;

        foreach (var tweet in tweets)
        {
            if (tweet.InReplyToStatusId.ToString() != "")
            {
                if ((tweet.User.ScreenName == "IIPL_LTD") || (tweet.Text.StartsWith("@IIPL_LTD")))
                {
                    string replyid = tweet.InReplyToStatusId.ToString();

                    while (replyid != "")
                    {
                        if (i == 0)
                        {
                            twt_id[i] = tweet.Id.ToString();
                        }
                        id = Convert.ToInt64(replyid);
                        var twt = service.GetTweet(new GetTweetOptions { Id = id });
                        //twtid = Convert.ToInt64(tweet.Id).ToString();
                        twtid = Convert.ToInt64(twt.Id).ToString();
                        //abc = twtid;
                        i = i + 1;
                        twt_id[i] = twtid;
                        replyid = twt.InReplyToStatusId.ToString();
                       // replyid = tweet.InReplyToStatusId.ToString();
                        // replyid = "";
                        increment = increment + 1;
                    }
                  }
                }

代码终止,错误提示为“对象引用未设置为对象实例”

获取的id为38811592704,但下面的代码行却得到了null值:

var twt = service.GetTweet(new GetTweetOptions { Id = id });

   while (replyid != "")
   {
       if (i == 0)
       {
          twt_id[i] = tweet.Id.ToString();
       }
       id = Convert.ToInt64(replyid);
       var twt = service.GetTweet(new GetTweetOptions { Id = id });
       twtid = Convert.ToInt64(twt.Id).ToString();
    }

任何想法?提前感谢。

1
检查replyid的值是否为空。 - iJade
1
在调试模式下运行,并检查哪个值实际上是null。我猜我们必须假设id是null,因为如果之前已经使用过,该服务不应该是null...检查replyid中实际上包含了什么。 - Daniel Dawes
我可以获取回复ID。 - user2500094
可能是重复的问题:什么是NullReferenceException,如何修复它? - nvoigt
2个回答

1
这里唯一可能会引起问题的是你的类构造函数。
new GetTweetOptions

出现了异常。请前往该类的构造函数并查看导致错误的原因。


1

调试你的代码,查看你在哪个对象上出现了错误,然后尝试使用NEW关键字创建该对象的新实例来解决此错误。

例如,假设变量twt = service.GetTweet(new GetTweetOptions { Id = id });

Service是一个对象,那么在使用之前必须创建一个新的实例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接