Appel de class sous windows form [Résolu]

Messages postés
9
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010
- - Dernière réponse : Angelssen
Messages postés
9
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010
- 5 janv. 2010 à 11:17
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;
}

}
}
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
3
Merci
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;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nhervagault
Messages postés
9
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010
0
Merci
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;
        }
        
    }
}
Commenter la réponse de Angelssen
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
28
0
Merci
Salut, un constructeur de classe n'a pas de valeur de retour, utilise une classe statique et une méthode statique ( static ).
Commenter la réponse de Lutinore
Messages postés
9
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010
0
Merci
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;
                }
            }
        }
        
    }
}
Commenter la réponse de Angelssen
Messages postés
9
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
21 janvier 2010
0
Merci
Je l'ai simplifié pour ma question qui concernait plus la syntaxe que l algo en fait ;) merci en tout cas je regarde ca
Commenter la réponse de Angelssen