Salut, je débute dans la programmation OO avec C#, et j'ai une question à propos des directives de préprocesseur.
En fait, en C, j'avais l'habitude de définir mes tailles de tableaux avec des constantes (genre grille[HAUTEUR][LARGEUR]) pour faciliter les conditions de boucles pour interagir avec ces derniers, mais j'ai l'impression qu'en C#, c'est pas possible d'utiliser les directives de préprocesseur pour donner des valeurs.
J'ai cherché un peu sur le site officiel de microsoft, et ils disent qu'utiliser le define pour des valeurs est pas possible comme en C, et qu'il fallait plutôt utiliser des membres statiques d'une classe ou d'une structure... et j'suis pas trop sûr de comprendre ce que c'est ni comment faire.
Quelqu'un saurait m'expliquer ce qu'ils veulent dire par là ? Ou même comment faire tout simplement ? Merci d'avance
Je crois que ça veut dire que tu devrais créer une classe "Constantes" avec tes valeurs dedans, en static
1) Un membre statique d'une classe est un membre commun a toutes les instances de cette classe.
2) J'imagine qu'en C#, comme en JAVA, on nedéfinit qu'assez rarement la taille d'un tableau. A la place on utilise des types qui peuvent prendre un nombre pseudo infini d'objets (Arraylist par exemple)
3) Si tu veux malgré tout définir ton tableau manuellement, tu peux utiliser des constantes, sans passé par le préproc.
@Kyomaro : je chipotte, mais je pense que c'est une mauvaise idée. même si ces valeurs sont statiques, elles sont tout de même rattachée a sa classe, et devraient donc figurer dedans
@Kyomaro : je chipotte, mais je pense que c'est une mauvaise idée. même si ces valeurs sont statiques, elles sont tout de même rattachée a sa classe, et devraient donc figurer dedans
Oui, elles figurent dedans, ce sont des attributs de la classe, mais par exemple si tu veux accéder à une constance, tu fais Constantes.nom
Enfin j'ai jamais test, j'ai fait qu'interpréter ce qu'il a pensé comprendre du site, je ne sais absolument pas ce que ça donnerait
Okok merci pour vos réponses, je m'informerai sur ce que vous avez évoqué.
@Haptaro : J'ai pour habitude de me donner un projet "simple" à développer et d'apprendre sur le tas ce dont j'ai besoin pour progresser. Peut être je devrais remettre en question mes méthodes d'apprentissages, merci pour le conseil ^^
Dans les propriétés de ton project c# sur Visual Studio tu a Générer et Symbol ede compilations conditionnelle c'est en gros là que tu crés tes #define, par exemple EXEMPLE1;EXEMPLE2
puis dans le code tu fait juste
[sharp]if EXEMPLE1
ton code
[sharp]else
autre code
[sharp]endif
et/ou
[sharp]if EXEMPLE2
ton code
[sharp]endif
PS remplace [sharp] par #