2010-11-27 137 views
4

我得到這個編譯器錯誤,是什麼問題?不是所有的代碼路徑都返回一個值

public PictureBox getinfo(int i, int j) 
{ 
    return grid[i, j]; 
} 

public PictureBox kingmove(int i, int j)///<-----the problem is here 
{ 
    getinfo(i, j); 

    if (i < 9) 
    { 
     grid[i, j] = grid[i - 1, j - 1]; 
    } 
    else 
    { 
     grid[i, j] = grid[i, j]; 
    } 
+0

如何讀取一個好的C#書?這樣你就不需要經常這麼問了,然後刪除了這個問題...... – CodesInChaos 2010-11-27 14:31:11

+0

當你錯過一個函數的返回或者你返回一個錯誤的數據類型比較應該返回什麼函數時,會出現這個常見的錯誤。 – 2010-11-27 15:15:12

回答

6

您的第二種方法沒有return聲明,但返回類型與void不同。
在該方法的處添加return聲明,而不是在開始階段。

而且你可以在你之前的問題中編輯它。

混合UI和遊戲邏輯的方式也很醜陋。遊戲邏輯應該對WinForms,圖片框等一無所知...
取而代之的是寫一個函數,它需要一個遊戲狀態並將它渲染成一些控件/位圖/ picturebox/...

相關問題