Je rencontre un problème en utilisant ArrayList sous Visual Studio 2005

maltutoma Messages postés 25 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 4 septembre 2008 - 16 mars 2008 à 18:19
maltutoma Messages postés 25 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 4 septembre 2008 - 17 mars 2008 à 10:52
salut  à tous. comme je l'ai écrit dans ma présentation, j'essaie d'apprendre en autodidacte sans avoir suivi des cours d'informatique. bon voilà mon problème, j'apprend à utiliser la classe ArrayList, voilà mon code:





using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int Var1;
            double Var2;
            ArrayList Chaine = new ArrayList();
            // AFFECTATION DE VALEUR A UNE VARIABLE ENTIERE ET UNE AUTRE FLOTTANT
            Console.Write("SVP entrez un nombre entier : ");
            Var1= int.Parse(Console.ReadLine());
            Console.WriteLine("Var1 = " + Var1);
            Console.Write("SVP entrez un nombre flottant :");
            try
            {
                Var2 = double.Parse(Console.ReadLine());
                Console.WriteLine("Var2 = " + Var2);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Erreur " + e.Message);
            }

            // AJOUT D'ELEMENT DANS UN TABLEAU DYNAMIQUE
            Chaine.Add(Var1);
            Chaine.Add(Var2);
            Console.Write("Chaine = ");
            for (int i = 0; i < Chaine.Count; i++) Console.Write(Chaine[i] + " ");
            Console.WriteLine("");
            // Console.WriteLine("Chaine = " + Chaine);
            Console.ReadKey();
        }
    }
}



avec le message d'erreur qu'on affiche :
Use of unassigned local variable 'Var2'

je ne sais vraiment pas où se trouve le problème. je vous rappelle que je ne suis pas des cours d'informatique alors soyez indulgents.

12 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
16 mars 2008 à 18:49
Salut,

Le compilateur C# impose d'initialiser une variable avant son utilisation.

double var2 = 0.0;

Dans ton code, arrivé à cette ligne,

Chaine.Add( var2 );

il se peut que var2 ne soit pas initialisé ( à cause du bloc try/catch ).
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
16 mars 2008 à 18:58
Prends l'habitude d'écrire tes variables avec une miniscule, c'est une bonne convention à respecter en .NET. Mais c'est bien de commencer par des programmes en mode console, beaucoup trop de débutants se lancent dans des applications winforms ou tout est généré par Visual Studio et ils ne comprennent rien à ce qu'ils font.
0
maltutoma Messages postés 25 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 4 septembre 2008
16 mars 2008 à 20:57
merci de m'avoir répondu aussi vite mais je ne comprends pourquoi il ne signale pas Var1 puisqu'elle non n'a pas été initialisée. j'ai noté ton conseil celui de prendre l'habitude d'écrire les variables en minuscule. j'ai encore une préoccupation, je voudrais savoir si un tableau de la classe ArrayList peut contenir des données de différent type, par exemple entier et flottant?
je vais vérifier tout à l'heure l'initialisation de Var2 et je reviens sur le forum.
0
maltutoma Messages postés 25 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 4 septembre 2008
16 mars 2008 à 21:58
effectivement, il me fallait initialiser Var2, de plus j'ai pu trouver la réponse à ma préoccupation, le tableau peut contenir des données de différents types. merci pour ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 mars 2008 à 22:48
Une arraylist peut contenir toute sorte d'éléments.
Avec framework 2 et supérieur, utilisé de préférence les Generics.

<hr />
-My Blog-
0
maltutoma Messages postés 25 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 4 septembre 2008
17 mars 2008 à 02:11
les Generics, ce sont les classes génériques?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
17 mars 2008 à 09:12
Oui, par exemple List i = new List ();

<hr />
-My Blog-
0
maltutoma Messages postés 25 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 4 septembre 2008
17 mars 2008 à 09:49
en fait ce que tu me conseilles c'est de préciser le type de tableau dynamique que souhaite utiliser?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
17 mars 2008 à 10:36
Oui, car si tu mélanges les types, tu devras soit traiter des objets, soit faire des tests (is et as) pour savoir à quel type tu as à faire...

<hr />
-My Blog-
0
maltutoma Messages postés 25 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 4 septembre 2008
17 mars 2008 à 10:38
c'est noté, merci pour ton conseil. tu connaittras par hasard un site sur lequel je pourrais trouver des exos en c#?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
17 mars 2008 à 10:41
0
maltutoma Messages postés 25 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 4 septembre 2008
17 mars 2008 à 10:52
c'est justement des exos de ce genre que je cherchais pour commencer. alors je vais te laisser pour commencer à m'exercer. merci d'avoir éclairé ma lanterne. bonne journée
0
Rejoignez-nous