Mon code ne fionctionne pas, prob instanciation de class??

Mon code ne fionctionne pas, prob instanciation de class?? - C#/.NET managed - Programmation

Marsh Posté le 17-02-2005 à 02:54:46    

Salut salut...
                 ...bon  :D  
on y va  :p  
 
Alors voila! Je suis un nouveau en prog, et la je commence le C#...jai donc voulu faire moi aussi mon pti hello world, mais/et les problemes commencent deja  :p  
voici le code ! ==>jai une petit idée sur le probleme, mais je ne sais pas comment y remedier, alors si vous pouviez me corriger ça pour je comprenne, merci :)
 

Code :
  1. using System;
  2. class maClass
  3. abstract class etreVivant {
  4. public abstract void seDeplacer();
  5. }
  6. class humain : etreVivant {
  7.  int i;
  8.  public override void seDeplacer(){
  9.   for (i=0; i<=100; i++){
  10.    Console.WriteLine("Je me deplace a " + i + " km/h." );
  11.   }
  12.  }
  13. }
  14. maClass.humain Ben; //le probleme viendrait il d 'ici???
  15. public static void Main(string[] args)
  16. {
  17.  Console.WriteLine("Hello World!" );
  18.  Console.WriteLine("J'ecris avec du C# !" );
  19.         Console.WriteLine("C' est super !" );
  20.  Console.WriteLine("Je comprends rien à  toutes ces class putain de merde !!!" );
  21.  Console.WriteLine(" " );
  22.  Ben.seDeplacer();
  23.  }
  24. }


 
Je suis sous sharpdevelop 1.0.3 et le compilo le sort comme msg derreur:

Citation :

'maClass.Ben' denotes a 'field' where a 'class' was expected (CS0118)


 
Voila, si une lumiere pouvait venir meclairer... :ange:  jen serais bien content..0
 
PS: il est 3heure du mat' et jai pas les idées claires alor on verra les bourdes que jai faite demain...llo
 
thx  :hello:

Reply

Marsh Posté le 17-02-2005 à 02:54:46   

Reply

Marsh Posté le 17-02-2005 à 08:10:53    

Pourquoi écrit-tu maClass.humain Ben;, il faut juste  humain Ben;. Aussi tu n'a pas instancié ton Ben, il faut faire un Ben = new humein()

Reply

Marsh Posté le 17-02-2005 à 19:36:33    


Code :
  1. using System;
  2. class maClass
  3. abstract class etreVivant {
  4. public abstract void seDeplacer();
  5. }
  6. class humain : etreVivant {
  7.  int i;
  8.  public override void seDeplacer()
  9.  {
  10.   for (i=0; i<=100; i++)
  11.   {
  12.    Console.WriteLine("Je me deplace a " + i + " km/h." );
  13.   }
  14.  }
  15. }humain Ben;
  16. public static void Main(string[] args)
  17. {
  18. Console.WriteLine("Hello World!" );
  19. Console.WriteLine(" " );
  20. new Ben = humain();
  21. Ben.seDeplacer();
  22. }
  23. }

Jai fait la modif mais ça ne fonctionne toujours pas... :sarcastic:  
Ou est lerreur? Je ne comprend pas ce que veut me dire le compilo==>

Citation :

A new expression requires () or [] after type (CS1526)


 
???
merci

Reply

Marsh Posté le 17-02-2005 à 20:02:54    

oula, ya un truc qui va pas :)
 

Code :
  1. new Ben = humain();


 
n'est pas légal.
Ce que tu veux surement faire, c'est :
 

Code :
  1. Ben = new humain();


 
D'une manière générale, il y a des choses à revoir. Je pinaille, mais si tu suis ces qques conseils, tu éviteras des ennuis plus tard.
 
1) tu utilises un classe abstraite, que tu étends et spécialise. Ok, c'est bon, mais sais-tu ce que tu fais ? Je veux dire, c'est volontaire ? Car pour faire juste ce que tu fais là, tu n'as pas besoin de cette "artillerie lourde".
 
2) Essaie de prendre des règles de nommage "standards". Par exemple, les noms qui commencent par une majuscule sont à réserver aux noms de classes et aux noms de méthodes. Les instances, comme ton objet "Ben", il vaut mieux les mettre en minuscule.
C'est pas une obligation, mais c'est assez répandu comme notation et ca aide à lire.
 
3) Il faut indenter :)
 
En gros, je ferais ca :
 

Code :
  1. using System;
  2. class MaClass
  3.    
  4.      abstract class EtreVivant{
  5.       public abstract void SeDeplacer();
  6.      }
  7.    
  8.      class Humain : EtreVivant {
  9.          int i;
  10.        
  11.          public override void SeDeplacer()
  12.          {
  13.              for (i=0; i<=100; i++)
  14.              {
  15.                  Console.WriteLine("Je me deplace a " + i + " km/h." );
  16.              }
  17.          }
  18.      }
  19.    
  20.      Humain ben;
  21.          
  22.      public static void Main(string[] args)
  23.      {
  24.       Console.WriteLine("Hello World!" );
  25.        Console.WriteLine(" " );
  26.        
  27.       ben = new Humain();
  28.       ben.SeDeplacer();
  29.      }
  30. }

Reply

Marsh Posté le 17-02-2005 à 20:08:55    

Ok merci beaucoup Oliv5 pr tes conseils, je vais essayer de les suivre au mieux. Tu sais ou je pourrais trouver une sorte de reference de toutes les fonctions .net en C# sur le net? Ca maiderait beaucoup...et pour le reste je vais essayer de revoir/voir! tout ce qui touche aux classes...
 
EDIT: ha oui, e je vais peut etre a voir lair bete mais, ça veut dire quoi indenter au passage...?  :whistle:  merci  :pt1cable:  
 
Merci
a+ ;)


Message édité par coincoin1307 le 17-02-2005 à 20:10:36
Reply

Marsh Posté le 17-02-2005 à 20:21:21    

Indenter, c'est mettre des tabulations devant le code de manière à voir le contenu des classes et des méthodes.  
 
ex : pas indenté

Code :
  1. public class XX
  2. {
  3. public XX(int rien)
  4. {
  5. int ok=rien;
  6. ok++;
  7. }
  8. }


 
Indenté ca donne :
 

Code :
  1. public class XX
  2. {
  3. public XX(int rien)
  4. {
  5.  int ok=rien;
  6.  ok++;
  7. }
  8. }


 
Pour la librairie de fonctions c#, il y a la MSDN (le paradis ou l'enfer).
 
http://msdn.microsoft.com/library/ [...] _start.asp
 
Regarde les rubriques "System", "System.IO", "System.Collections", "System.Net", etc etc.
 
Sinon, il y a l'explorateur d'objets dans Visual Studio (si tu l'as).

Reply

Marsh Posté le 18-02-2005 à 01:17:56    

Merci Oliv5 mais ton code ne fonctionne pas...sous SharpDevelop en tout cas! (ver 1.0.3)...
 
http://img135.exs.cx/img135/56/erreur5ib.jpg
(Cest lourd on peu pas copier le texte avec sharpdev...)
 
 :hello:  

Reply

Marsh Posté le 18-02-2005 à 02:36:57    

Cest bon  :pt1cable:  il fonctionne  :pt1cable:  
lol
 
voici le code...cest tout bete, je suis sur que c une erreur dinatention de ta part Oliv5  ;)  
Par contre, des que je veux faire heriter ma classe humain de la classe etre vivant, ça foire, mais je suis sur que je peux trouver la reponse a ce probleme par moi meme :)
merci
 

Code :
  1. using System;
  2. class MaClass
  3. {   
  4.      
  5.    
  6.      
  7.      class Humain
  8.      {
  9.          int i;
  10.          
  11.          public void seDeplacer()
  12.          {
  13.              for (i=0; i<=100; i++)
  14.              {
  15.                  Console.WriteLine("Je me deplace a " + i + " km/h." );
  16.                
  17.              }
  18.          }
  19.      }
  20.      
  21.    
  22.          
  23.      public static void Main(string[] args)
  24.      {
  25.          Console.WriteLine("Hello World!" );
  26.          Console.WriteLine(" " );
  27.        
  28.          Humain ben;       
  29.          ben = new Humain();
  30.          ben.seDeplacer();
  31.                
  32.      }
  33. }


 
 :hello:  jvous revois des que jai de nouveaux  problemes !   :D  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed