IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#] Pourquoi l'avertissement Variable non assignée ?


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Points : 41
    Points
    41
    Par défaut [C#] Pourquoi l'avertissement Variable non assignée ?
    heuu, je viens de me rendre compte qu'il ne s'agit pas du forum approprié

    toutes mes excuses

    Bonjour,

    je suis actuellement en train de me mettre a niveau sur C# étant developpeur C++. Je réalise des petites applications afin de reviser. Pour tester le type enum, j'ai réaliser un petit script qui affiche une phrase en fonction du jour qu'on tape dans l'application.

    Mon soucis est que quand j'utilise la gestion d'exeption pour tester si la valeur saisi est correct. Malheuresement, il y a quelque chose que je ne me maitrise pas car le compilo me retourne ke j'utilise une variable non assigné (en rouge).

    Si quelqu'un peut m'indiker mon erreur, je serai ravi de lire son explication.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    using System;
    
    namespace TestEnum
    {
        class Program
        {
            enum Day {Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche};
            static void Main(string[] args)
            {
                string d;
                Day j;
                Console.WriteLine("Quel est ton jour favori ?");
                d = Console.ReadLine();
                try {  j = (Day)Enum.Parse(typeof(Day), d, false); }
                    catch (ArgumentException)
                        {
                            Console.WriteLine("Vous avez commis une erreur durant la saisi");
                        }
    
                switch (j)
                {
                    case Day.Lundi:
                        Console.WriteLine("Dur de se lever le lundi matin"); break;
                    case Day.Mardi:
                        Console.WriteLine("C'est plutôt pennard le mardi"); break;
                    case Day.Mercredi:
                        Console.WriteLine("Club Dorothé"); break;
                    case Day.Jeudi:
                        Console.WriteLine("Le week end n'est plus très loin"); break;
                    case Day.Vendredi:
                        Console.WriteLine("Cool, on se la coule douce"); break;
                    case Day.Samedi:
                        Console.WriteLine("Ouuééé au va au ciné ?"); break;
                    case Day.Dimanche:
                        Console.WriteLine("Bahh demain c'est deja Lundi"); break;
                }
    
                
                Console.Read();
            }
        }
    }

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Je pense que le problème vient du fait que ta variable est j prend une valeur dans ton try mais si elle ne passe pas dans ton try elle n'est pas assigné.

    Donc soit tu initialises ta variable avant ton try ou soit tu mets ton switch dans le try.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Points : 41
    Points
    41
    Par défaut
    Merci Bcp, je vais opter pour la seconde solution. je reviendrai sur ce probleme pour étudier d'autre moyen de faire pour ne pas reproduire cette situation.

    @+!

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    en fait si tu veux eviter l'erreur, soit opte pour une valeur par défaut lors de la création de la variable, sinon intègre un bloc finally suite en try, en faisant en sorte de ne pas utiliser lire la variable j dans le meme bloc try catch finally que le bloc ou tu affecte j.

    En effet, le compilateur C# EXIGE que TOUS LES CHEMINS de code affectent la variable avant qu'elle ne puisse etre lue. Certes parfois c'est très génant, mais cela peut éviter pas mal d'erreurs qui elles aussi sont très genantes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Variable non reconnue, Pourquoi?
    Par mikeactuaire dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/07/2011, 21h00
  2. Réponses: 6
    Dernier message: 31/12/2008, 10h59
  3. cellule non assignée, variable NaN?
    Par gritchou dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/04/2008, 16h45
  4. [Design] Erreur variable non déclarée ou non assignée
    Par Arnard dans le forum Visual Studio
    Réponses: 3
    Dernier message: 19/12/2007, 17h53
  5. Réponses: 6
    Dernier message: 13/05/2004, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo