2010-11-27 6 views
4

J'ai eu cette erreur de compilation, quel est le problème?tous les chemins de code ne renvoient pas une valeur

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

Que diriez-vous de lire un bon C# livre? De cette façon, vous n'avez pas besoin de demander si souvent SO et supprimer la question après ... – CodesInChaos

+0

Cette erreur commune se produit lorsque vous manquez un retour pour une fonction ou vous renvoyer un mauvais type de données comparer à quelle fonction devrait retourner. –

Répondre

6

Votre deuxième méthode n'a pas de déclaration return mais un type de retour différent de void.
Ajoutez une instruction return au et terminez de la méthode et non au début.

Et vous pourriez avoir édité cela dans votre question précédente.

La façon dont vous mélangez l'interface utilisateur et la logique du jeu est laide. La logique du jeu ne devrait rien savoir sur WinForms, les boîtes d'image, ...
A la place, écrivez une fonction qui prend un gamestate et le rend dans un contrôle/bitmap/picturebox/...

+3

De plus, son appel à 'getinfo()' ne sert probablement à rien, mais c'est un problème totalement différent. – Donnie

+0

ok, merci beaucoup – Arash

+0

pour ne pas mentionner l'inutile d'autre :) –

Questions connexes