2009-02-14 62 views
1

我通常會遇到此錯誤,並且(始終)不知道如何解決該問題。 這一次我也,看來我不理解一個概念或缺少的東西 下面的代碼未將對象引用設置爲對象的實例

 // create a new twitteroo core with provided username/password 
     TwitterooCore core = new TwitterooCore(username, password); 

     // request friends timeline from twitter 
     Users users = core.GetTimeline(Timeline.Friends); // error here 

請一些幫助,併發生了什麼 感謝

+0

可能重複[什麼是.NET中的NullReferenceException?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net) – Justin 2011-12-16 15:05:11

回答

3

我終於找到了問題 這是因爲我的防火牆似乎阻止連接到Visual Studio。 現在,它在不改變在所有工作:) 感謝您的支持

+0

你應該趕上,當你不能連接;) – Stormenet 2009-02-14 11:38:06

+0

哦是的,這將是測試功能後:) – 2009-02-15 08:59:35

0

可能是也有一些解釋Timeline.Friends爲空,可能時間軸爲空。我建議你看一下異常的堆棧跟蹤,並將其記錄到你的twitter框架的文檔中。

+0

nop它不是null我看:( – 2009-02-14 11:09:48

2

這個錯誤是一個痛苦,它基本上意味着你正在訪問的某些可放大的內容仍然是空的。

在這種情況下,你在哪裏初始化時間軸?如果你的代碼是這樣的:

Users users = core.GetTimeline().Friends; 

OK,我一直在尋找的twiteroo文檔,這是一個有點稀疏,我想你一定需要實例時間線的一個實例傳遞到GetTimeline,(它返回一組用戶,不是很好地命名爲恕我直言)。我無法弄清楚的是如何啓動時間軸實例。如果bthb說,它可能只是核心,也許用戶名或密碼錯誤,或者它不能連接到Twitter嗎?好的,它不是時間軸是null,(這是一個枚舉!

+0

什麼是空對象?核心或用戶? 用戶爲NULL – 2009-02-14 11:12:38

+0

我現在認爲它的核心是空的。可能是因爲用戶名或密碼錯誤? – 2009-02-14 11:25:13

1

如果你反編譯dll,你會看到GetTimeline(Enum)接受了Enumeration參數。

構造函數調用將被罰款:

TwitterooCore core = new TwitterooCore(username, password); 

來源:

public TwitterooCore(string username, string password) 
{ 
     this._username = username; 
     this._password = password; 
} 

GetTimeline是被連接嘗試。

public Users GetTimeline(Timeline timeline) 
{ 
    WebClient client = new WebClient(); 
    XmlDocument document = new XmlDocument(); 
    string xml = string.Empty; 
    byte[] buffer = null; 
    client.set_Credentials(this.GetCredentials()); 
    buffer = client.DownloadData(this.GetTimelineUrl(timeline)); 
    xml = Encoding.UTF8.GetString(buffer); 
    document.LoadXml(xml); 
    return this.DecodeStatusXml(document); 
} 
1

它可能是核心,用戶名,密碼或Timeline.Friends,不可能知道你給我們的信息。

1

如果我是你,我會在錯誤的位置放一個斷點,然後在Timeline.Friends上貼一個手錶,並檢查它是否爲空,如果它沒有,那麼在core.GetTimeline(Timeline.Friends)並看看是否返回null。

它應該給你一個正確方向的推動,你可能需要閱讀twitter API的文檔,找出爲什麼其中任何一個返回null。

+0

沒有人返回空我檢查了 – 2009-02-14 11:18:49

1

如何檢查喜歡你的代碼:

 
Users users = null; 
if (Timeline != null) 
{ 
    TwitterooCore core = new TwitterooCore(username, password); 
    if (core != null) 
    { 
     var friends = Timeline.Friends 
     if (friends != null) 
      users = core.GetTimeline(Timeline.Friends); 
    } 
} 

如果運行沒有異常的對象之一可能是零。

1

錯誤消息中有兩個特定的短語,對象引用對象的實例。這些概念在處理OOP語言時非常基礎。

首先,對象引用可以被認爲是函數或類中的變量。這個術語也可能指代期望特定引用對象的函數參數。最初,變量的值爲NULL,直到使用'='運算符將其設置爲值。通常你會在同一個語句中有一個變量聲明和'='操作。

術語對象的實例指的是使用語法new創建的對象。當您調用new來初始化一個對象時,會分配一個未使用的內存位置來存儲該對象的一個​​副本,直到該程序結束,或者該對象超出作用域並被垃圾收集器釋放。在創建時,對象屬性由調用來創建對象的構造函數方法定義。

考慮以下代碼:

Integer my_int; 
my_int = new Integer(5); 

在該示例中, 'my_int' 是對象引用Integer對象實例被創建。

如果您嘗試訪問「my_int」,在分配給一個Integer實例引用之前,那麼你將有錯誤,「一個對象引用(my_int)未設置爲對象的實例Integer)「。

相關問題