Se connecter / S'enregistrer
Votre question
Résolu

Problème d'éxecution , 2 classes

Dernière réponse : dans Programmation
25 Janvier 2014 22:53:52

slt à tous
j'ai écris un programme en C# ou j'ai 2 classe

  1. class Albume
  2. {
  3. public string album;
  4. public string artiste;
  5.  
  6. public Albume()
  7. {
  8. album = "";
  9. artiste = "";
  10. }
  11.  
  12. public string Album
  13. {
  14. set
  15. {
  16. album = value;
  17. }
  18. get
  19. {
  20. return album;
  21. }
  22. }
  23.  
  24. public string Artiste
  25. {
  26. set
  27. {
  28. artiste = value;
  29. }
  30. get
  31. {
  32. return artiste;
  33. }
  34. }
  35. }
  36.  
  37.  
  38. class Tache
  39. {
  40. public Albume [] myAlbums;
  41.  
  42. public Tache()
  43. {
  44. myAlbums = new Albume[20];
  45.  
  46.  
  47. }
  48.  
  49. public void EntrerDonnee(Tache tch)
  50. {
  51. Console.WriteLine("donner l'album est l'artiste : ");
  52. Console.Write("Album : ");
  53. tch.myAlbums[0].Album = Console.ReadLine();
  54. Console.Write("Artiste : ");
  55. tch.myAlbums[0].Artiste = Console.ReadLine();
  56.  
  57. }
  58.  
  59. //+ d'autre méthod
  60. }



et notre Main

  1. class MainClass
  2. {
  3. public static void Main(string[] args)
  4. {
  5. Tache tache = new Tache();
  6.  
  7. tache.choix();
  8.  
  9. }
  10. }



la compilation ça passe mais l'éxecution me donne ça
---> La référence d'objet n'est pas définie à une instance d'un objet
voilà une capture d'ecran du probleme : http://hpics.li/d1bbda3

Autres pages sur : probleme execution classes

26 Janvier 2014 19:37:40

A quoi correspond la fonction choix() ?
m
0
l
27 Janvier 2014 22:13:53

  1. class Tache
  2. {
  3. public void choix()
  4. {
  5. char choix = ' ';
  6. int nbralbm , indice = 0;
  7.  
  8. Console.Write("le nombre d'albums à entrer : ");
  9.  
  10.  
  11. do
  12. {
  13. while (!Int32.TryParse(Console.ReadLine(), out nbralbm))
  14. {
  15. Console.WriteLine("\ndonner un nombre et pas un caractere !!!!\n");
  16. }
m
0
l
Contenus similaires
27 Janvier 2014 23:50:53

C'est parce que tu as juste créé un tableau, mais que tu n'as pas initialisé de données dedans.
  1. public void EntrerDonnee(Tache tch)
  2. {
  3. tch.myAlbums[0] = new Albume();
  4. Console.WriteLine("donner l'album est l'artiste : ");
  5. Console.Write("Album : ");
  6. tch.myAlbums[0].Album = Console.ReadLine();
  7. Console.Write("Artiste : ");
  8. tch.myAlbums[0].Artiste = Console.ReadLine();
  9. }
m
0
l
29 Janvier 2014 14:14:58

Je l'ai testé le prog sur mon pc et je vois pas vraiment d'où peut venir l'erreur c'est bizarre ...
m
0
l
29 Janvier 2014 20:16:55

Omar a donner la solution ...
ceci dit une petit remarque , ta classe Album contient deux propriété public, pourquoi leur faire des get/set ?

Tu devrait plutôt etre:
  1. class Album
  2. {
  3. public string Album { get; set;}
  4. public string Artiste {get; set;}
  5. }
m
0
l

Meilleure solution

29 Janvier 2014 21:33:26

Merci j'ai fait
  1. class Tache
  2. {
  3. public Albume[] myAlbums;
  4. int Taille = 20;
  5. public Tache()
  6. {
  7. myAlbums = new Albume[Taille];
  8. for (int i = 0; i < myAlbums.Length; i++)
  9. {
  10. myAlbums[i] = new Albume();
  11. }
  12. }
  13. ................
  14. }
partage
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS