找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
請尊重及感激所有版主付出和奉獻尊貴會員無限使用任何功能尊貴會員無限下載附件
霹靂fc2催眠259luxu3d中文adobe
代表隊flash太荒吞天从纲手大苦主救助企鵝本田岬

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]青春之箱06-

[繁]戰國妖狐27-

[繁]孤單一人的異世界

[繁]七龍珠大魔05-

[繁]魔王2099 04-

[繁]再見龍生,你好人
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 2287|回復: 6
打印上一主題下一主題

[求助]Visual C# Null Reference Exception,是出什麼問題?如何解決?[複製鏈接]

帖子
213
積分
102 點
潛水值
7083 米
跳轉到指定樓層
樓主
發表於 2012-1-11 12:44 AM|只看該作者|倒序瀏覽
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
本帖最後由 arthurliuliu 於 2012-1-11 07:47 AM 編輯

我是要寫類似冰上曲棍球的遊戲,以下是說明...(註:球的數量設定為讓玩家可以輸入1~100一次出現在檯面上,所以才有Balls的變數)

擋板就是指守在球門前的阻擋物,我是用工具箱裡的picturebox建立的。擋板大小為10,50。
以下是寫碰到擋板球就要反彈的程式碼片段:

  1. if (Balls.position[0] <= 擋板1.Location.X + 10 && Balls.position[0] >= 擋板1.Location.X && Balls.position[1] >= 擋板1.Location.Y && Balls.position[1] <= 擋板1.Location.Y + 50)
  2.                 {
  3.                     Balls.velocity[0] = Balls.velocity[0] * -1;
  4.                     Balls.velocity[1] = Balls.velocity[1] * 1;
  5.                 }
複製代碼



乍看下好像沒問題(自我感覺良好?):只要球的位置跑在擋板內部,就反彈。(因為擋板為細長狀,故微小差異在執行遊戲時應該無妨)
但在執行偵錯時,「if」那一行程式碼就被黃色底的方框選取來,並顯示「Null Reference Exception」。

問題出在這,「Null Reference Exception」是什麼意思?該如何解決?
我也有點進去Visual Studio的幫助頁(
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
)
只看懂一點點,但還是不知道該如何下手改程式。
向大大求救!謝謝!

(因為此題目不一定大家懂意思,加上程式碼冗長,不方便一一解釋,所以只選取一小部分程式碼。若有熱心大大願意幫忙,需要看看其他部分的程式碼,我馬上貼上!)

code沒包,板主代為編輯。
arthurliuliu
...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
分享分享0收藏收藏0支持支持0

使用道具檢舉

  專 家(12000/24000)

落葉知秋

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
1600
積分
23884 點
潛水值
54991 米
頭香
發表於 2012-1-11 07:48 AM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
要請版友幫忙除錯,請附上專案檔,
光你貼的訊息,沒辦法幫你找到原因,
以上說明。
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

皇臾 該用戶已被刪除
3
發表於 2012-1-11 08:16 AM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
一般會出現「Null Reference Exception」,是因為你使用的物件沒有被正常引用,也就是你使用的物件變數是無效的;因此你要先檢查是不是在引用時的程式,是不是有未考慮到的地方,而這個狀況造成你看似沒有問題,但是卻沒有成功將變數指到一個物件
所以版主的話是有道理的,你沒有post上完整的程式碼,是無法幫你除錯的!

使用道具檢舉

帖子
213
積分
102 點
潛水值
7083 米
4
發表於 2012-1-11 11:34 AM|只看該作者
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
那就麻煩了!附上專案檔:


順便附上我要做的題目:
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊

使用道具檢舉

  專 家(12000/24000)

落葉知秋

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
1600
積分
23884 點
潛水值
54991 米
5
發表於 2012-1-11 07:58 PM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
回復
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
abc6308774
  1.             for (int i = 0; i <= ballnumber; i++)
  2.             {
  3.                 if (Balls[i].position[0] <= 擋板1.Location.X + 10 && Balls[i].position[0] >= 擋板1.Location.X && Balls[i].position[1] >= 擋板1.Location.Y && Balls[i].position[1] <= 擋板1.Location.Y + 50)
  4.                 {
  5.                     Balls[i].velocity[0] = Balls[i].velocity[0] * -1;
  6.                     Balls[i].velocity[1] = Balls[i].velocity[1] * 1;
  7.                 }

  8.                 if (Balls[i].position[0] <= 擋板2.Location.X + 10 && Balls[i].position[0] >= 擋板2.Location.X && Balls[i].position[1] >= 擋板2.Location.Y && Balls[i].position[1] <= 擋板2.Location.Y + 50)
  9.                 {
  10.                     Balls[i].velocity[0] = Balls[i].velocity[0] * -1;
  11.                     Balls[i].velocity[1] = Balls[i].velocity[1] * 1;
  12.                 }
  13.             }
複製代碼
第一行的 for 迴圈改成:
  1.             for (int i = 0; i < ballnumber; i++)
複製代碼
拿掉=符號,因為你的球如果是1,
等於要跑兩次for迴圈,當然會出現錯誤。

另外...你的class跟物件竟然用中文命名,暈 @@"
改掉這個壞習慣吧 >_<...
瀏覽完整內容,請先 註冊登入會員





使用道具檢舉

帖子
213
積分
102 點
潛水值
7083 米
6
發表於 2012-1-12 09:10 AM|只看該作者
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
原來是這樣啊@@

謝謝版主!如果有問題再麻煩喔@@
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

帖子
213
積分
102 點
潛水值
7083 米
7
發表於 2012-1-13 04:34 AM|只看該作者
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
完成囉!感謝版主大大幫忙^^
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部