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 :

[débutant] Arrêt avant début de fonction


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 224
    Points : 75
    Points
    75
    Par défaut [débutant] Arrêt avant début de fonction
    Bonjour,
    Je suis débutant en C#
    J'ai un problème avec mon code.
    Le programme s'arrête avant d'arriver à la fonction Start()
    C'est une ébauche :
    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
    using System;
     
    namespace Tableaux
    {
    	class Program
    	{
    		public static void Main(string[] args)
    		{
    			Tableau MyTab = new Tableau();
    			Console.Write("Entrez un nombre inférieur à 100 000 : ");
    			string choix = Console.ReadLine();
    			int nombre = Int32.Parse(choix);
    			int resultat = MyTab.Start(nombre);
    			Console.WriteLine(resultat);
    		}
    	}
    	class Tableau
    	{
    		int i = 0;
    		int[] monTableau = new int[1000];
    		private int MonTableau
    		{
    			get
    			{
    				return monTableau[i];
    			}
    		}
    		public int Start(int nombre)
    		{
    			int mod = 2;
    			int resultat = nombre%mod;
    			return resultat;
    		}
    	}
    }

  2. #2
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    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
    using System;
     
    namespace Tableaux
    {
    	class Program
    	{
    		public static void Main(string[] args)
    		{
    try{
    			Tableau MyTab = new Tableau();
    			Console.Write("Entrez un nombre inférieur à 100 000 : ");
    			string choix = Console.ReadLine();
    			int nombre = Int32.Parse(choix);
    			int resultat = MyTab.Start(nombre);
    			Console.WriteLine(resultat);
    }catch(Exception ex)
    {
    Console.WriteLine(ex);
    Console.ReadLine();
    }
    		}
    	}
    	class Tableau
    	{
    		int i = 0;
    		int[] monTableau = new int[1000];
    		private int MonTableau
    		{
    			get
    			{
    				return monTableau[i];
    			}
    		}
    		public int Start(int nombre)
    		{
    			int mod = 2;
    			int resultat = nombre%mod;
    			return resultat;
    		}
    	}
    }
    Ca te permettra de voir le message d'erreur.
    Certainement que le nombre entré est invalide ?
    A quelle ligne exactement le programme s'arrête ?

  3. #3
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 224
    Points : 75
    Points
    75
    Par défaut
    Merci d'avoir répondu.
    Le programme s'arrête à la fin de la classe Program.
    Je n'ai aucun message d'erreur ou avertissement.

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Rajoute deux console.writeline pour connaitre la valeur de choix et de nombre (place ces console.writeline juste après l'affectation de chacune de tes deux variables.)

  5. #5
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 224
    Points : 75
    Points
    75
    Par défaut
    J'ai déjà vérifié grâce au débogage pas-à-pas.
    Tout est conforme de ce côté.
    Le problème est que la méthode Start() n'est jamais lancée.
    Je suppose que c'est dû à la relation entre MyTab.Start(); et le return resultat; mais je n'arrive pas à saisir ce qui cloche.

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    avec le débogger à tu vérifier que mytab n'est pas null ?

  7. #7
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 224
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par ced600
    avec le débogger à tu vérifier que mytab n'est pas null ?

    C'est là le problème !
    La valeur indiquée pour MyTab est {Tableaux.Tableau}

  8. #8
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 224
    Points : 75
    Points
    75
    Par défaut
    En fait je viens d'ajouter un dans ma méthode Start() et le programme attend que j'appuie sur une touche.
    Donc tout va bien !
    La méthode est belle et bien lancée.
    Désolé pour le dérangement.

  9. #9
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Place un breakpoint lors de l'appel au constructeur du tableau.
    Place-en un autre à l'appel de Start();

    Lors de l'arrêt, appuie sur F11 pour vérifier s'il y entre.

    Ok : j'avais lu trop vite le dernier post

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

Discussions similaires

  1. Démission avant début de prise des fonctions
    Par wikipoda dans le forum Démission
    Réponses: 3
    Dernier message: 04/11/2010, 23h56
  2. [Débutant] Arrêt d'un Vi en fonction d'un temps
    Par Alex71 dans le forum LabVIEW
    Réponses: 3
    Dernier message: 22/07/2009, 10h38
  3. [débutant] modifier une page en fonction d'un menu
    Par Hastur dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/07/2005, 13h29
  4. Ajouter un signe avant résultat en fonction du champ
    Par davyd dans le forum Langage SQL
    Réponses: 10
    Dernier message: 10/03/2005, 11h59
  5. [Débutante] Aperçu avant impression d'un composant
    Par gwendo dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 09/07/2004, 09h52

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