2011-06-28 224 views
0

我已經通過很多線程和網站搜索了這個問題。到目前爲止,我還沒有發現這個代碼有什麼問題。未將對象引用設置爲對象的實例

「壞」的代碼是這樣的:request.AddComment(v,c);

此外,我不知道堆棧跟蹤是什麼。

感謝您的提前幫助。

這裏是我的代碼:

string devkey = "1"; 
string username = "2"; 
string password = "3"; 
YouTubeRequestSettings a = 
      new YouTubeRequestSettings("test", devkey, username, password); 
YouTubeRequest request = new YouTubeRequest(a); 
Uri uri = new Uri("b"); 
Video v = request.Retrieve<Video>(uri); 
Comment c = new Comment(); 
c.Content = "asdf"; 
request.AddComment(v, c); 
+5

請添加堆棧跟蹤或至少是有問題的行 –

+0

您可以發佈堆棧跟蹤嗎? –

+2

在這一行中最可疑的是'Video v = request.Retrieve

回答

3

這段代碼有可能拋出的唯一方式NullReferenceException是,如果request.Retrieve返回nullrequest.AddComment拋出一個異常,如果任一個參數爲null

的解決方案是測試v

Video v = request.Retrieve<Video>(uri); 
if(v != null) 
{ 
    Comment c = new Comment(); 
    c.Content = "asdf"; 
    request.AddComment(v, c); 
} 
else 
{ 
    // something went wrong when getting the video... 
} 
0

NULL檢查正在引用的對象。視頻請求肯定應該被檢查。下面的代碼進行視頻空檢查。

string devkey = "1"; 
string username = "2"; 
string password = "3"; 
YouTubeRequestSettings a = new YouTubeRequestSettings("test", devkey, username, password); 
YouTubeRequest request = new YouTubeRequest(a); 
    Uri uri = new Uri("b"); 
    Video v = request.Retrieve<Video>(uri); 
    Comment c = new Comment(); 
    c.Content = "asdf"; 
    if (v!= null) 
    { 
     request.AddComment(v, c); 
    } 
    else 
    { 
     //Handle the null, try to get the video again, report to user, etc. 
    } 
+0

'new' _cannot_ return'null'。測試'request'是不必要的。 –

+0

我的不好,視頻應該檢查。我已經更新了代碼,Thx指出了這一點。 –

+0

謝謝,現在我知道v返回null:/現在我所需要做的就是試着讓它返回其他東西。 – George

相關問題