Appel de class sous windows form [Résolu]

Signaler
Messages postés
9
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010
-
Messages postés
9
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010
-
Bonjour a tous avec un ami on passe a Csharp et on a un soucis sur un appel de class, pour faire simple a la fin de la classe on utilisais un return pour pouvoir l appeler depuis une autre feuille mais la ca ne fonctionne pas, voici le code qui est tout bete il doit afficher un oui/non selon le chiffre sortant (srt). L'idee etant de vouloir faire appel a ce "resultat" depuis l'autre feuille comme dit precdemment

{
public class chiffre
{
int Nb;
chiffre(int Srt)
{
int[] R = new int[18]
{
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
}
int[] N = new int[18]
{
19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38
}
for (int i = 0; i<=18 ; i++)
{
if (Srt == R[i])
{
Nb=1
}
}
for (int i = 0; i<=18 ; i++)
{
if (Srt == N[i])
{
Nb=2;
}
}
return Nb;
}

}
}

5 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Salut,

Il manque le return

Pour l'appel c'est


int toto = chiffre.chiffre(10);

NB ; c'est pas tres bien nommé
essaie de respecter les conventions de nomages

Exemple

int toto = Chiffre.Traitement(10);


Je ne comprends pas trop l'interet de ton code.
Mais c'est surement voulu comme algo.
Voici un algo plus performant

if (Srt>0 && Str<18) {NB 1;}
else if (Srt>18 && Str<37) {NB 2;}
else { 
//que faire dans ce cas????
}
return NB;
Messages postés
9
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010

Hum pas tres lisible je vous refait ca avec les balises que javais pas vu, premiere fois sur le forum dsl :)

{
    public class chiffre
    {
        int Nb;
        chiffre(int Srt)
        {
            int[] R = new int[18]
            {
                1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
            }
            int[] N = new int[18]
            {
                19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37
            }
            for (int i = 0; i<=18 ; i++)
            {
                if (Srt == R[i])
                {
                    Nb=1
                }
            }
            for (int i = 0; i<=18 ; i++)
            {
                if (Srt == N[i])
                {
                    Nb=2;
                }
            }
        // c est la que ca bloque :
        return Nb;
        }
        
    }
}
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
Salut, un constructeur de classe n'a pas de valeur de retour, utilise une classe statique et une méthode statique ( static ).
Messages postés
9
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010

merci de la réponse on a en effet un peu mieux avancer mais je galere sur la fin avec une seule erreur restante

namespace WindowsFormsApplication1
{
    public class chiffre
    {
        // erreur ici : que tout le code ne retourne pas de valeure a propos de "chiffre"
        public static int chiffre(int Srt)
        {
            int Nb;
            int[] R = new int[18]
            {
                1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
            };
            int[] N = new int[18]
            {
                19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37
            };
            for (int i = 0; i<=18 ; i++)
            {
                if (Srt == R[i])
                {
                    Nb=1;
                }
            }
            for (int i = 0; i<=18 ; i++)
            {
                if (Srt == N[i])
                {
                    Nb=2;
                }
            }
        }
        
    }
}
Messages postés
9
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010

Je l'ai simplifié pour ma question qui concernait plus la syntaxe que l algo en fait ;) merci en tout cas je regarde ca