bonjour,
débutant C# je voudrais que ma classe comporte une variable de classe pour incrémenter des numéros de licence.
Le problème est que je ne sais pas comment la déclarer.
Je pensais à private static mais je ne suis pas sur
Version imprimable
bonjour,
débutant C# je voudrais que ma classe comporte une variable de classe pour incrémenter des numéros de licence.
Le problème est que je ne sais pas comment la déclarer.
Je pensais à private static mais je ne suis pas sur
Et c'est quoi des "numéros de licence" ? quel est le comportement que tu attends de cette méthode ? tu veux peut être qu'elle soit enregistrée sur l'ordinateur afin qu'elle ai la même valeur à chaque ouverture de l'application ?
non non ce n'est pas une licence de logiciel lol
Dans mon appli je gère des matchs et donc des lienciés et je voudrais faire une incrémentation sur mes lienciés a chaque ajout d'un objet de type Licencié.
Mais pour ca je dois déclarer une variable de classe pour mes licenciés.
J'espere avoir été plus clair et que tu aura une solution :D
Merci de t'etre interessé a mon probleme.
En c#, c'est avec le mot clé static que tu dois préfixer ta variable.
Merci beaucoup c'est bien ce que je pensais.
Par contre j'ai un autre souci lol
Je ne sais pas où déclarer les fonctions que j'ai créées sachant que je dois m'en servir dans ma classe.
J'ai essayé dans "programme.cs" mais j'ai une erreur et dans "Form1.cs" il me dis que la fonction n'est pas accessible...
Merci d'avance
Bonsoir,
Program.cs est un fichier réservé uniquement à l'implémentation de la méthode Main qui représente le point d'entrée de ton programme et la classe dans laquelle est contenue la méthode est différente de celle de ton formulaire.
Si tu veux ajouter un champ statique, il faut déclarer le champ à l'intérieur de ta classe. Il n'est pas possible de déclarer un champ en dehors d'une classe sauf si la classe en question est une classe imbriquée. Les méthodes d'instances doivent elles aussi être déclarées à l'intérieur de la classe.
Si ta méthode n'est pas accessible c'est parce que tu essaye d'accéder à un membre qui n'a pas un niveau de visibilité suffisant. Le problème vient du modificateur d'accès au membre. Ce message apparaît lorsque par exemple tu essaye d'accéder à un membre privé d'une classe hors de celle ci.
le pobleme est que j'ai bien déclaré ma fonction perso en "public"
Mais ma methode déclarée dans ma classe ne la trouve pas peu importe ou je la mette...
Je ne veux pas la déclarer dans ma classe mais partout ailleurs elle n'est pa trouvée...
En esperant avoir été plus clair
Bonjour,
Ta méthode est statique ?
voila la declaration de ma methode dans ma classe.
et voila la déclaration de ma fonction dans Form1.csCode:
1
2 public string categorie()
Tout est public c'est pour ca que je ne comprends pasCode:
1
2 public void diffDate(string autreDate, int nbj, int nbm, int nba)
Bonjour,
Si j'ai bien compris ce que tu cherche à faire c'est d'appeler ta méthode catégorie à partir de ta méthode diffdate c'est ça ?
Si c'est ça alors le problème c'est que ces 2 méthodes sont situées dans 2 classes différentes et n'ont aucun lien. Pour appeler une des 2 méthodes, il faut soit faire passer une référence de l'instance de la classe dans les paramètre de la méthode (par exemple si tu veux manipuler ton formulaire dans ta méthode catégorie) ou bien une de tes classes offre un lien de dépendance avec l'autre.
Donc en fait que Form1 puisse utiliser la méthode catégorie:
--> Tu peux créér une instance de ta classe qui contient la méthode categorie au sein de la méthode diffdate. Dans ce cas, la portée de ton objet se limitera uniquement aux corps de la méthode.
--> Ta classe Form1 peut recevoir dans ces champs de classe un objet de ta classe qui contient la méthode categorie au sein de la méthode diffdate que tu instancie via le constrcteur de Form1 ou bien dans la déclaration du champ.
en fait c'est le contraire que je veux faire lol
je veux pouvoir appeler diffDate() dans categorie()
Bonjour,
Je ne sais pas trop si c'est une bonne idée d'appeler une méthode d'un formulaire à partir d'une classe externe.
ah....
et que me conseille tu ?
Bonjour,
Au fait j'avais pas vu avant mais il existe une méthode qui permet de comparer 2 dates : la méthode statique Compare de la classe DateTime permet de comparer 2 instances de DateTime. je vois aussi que ta méthode ne renvoie rien c'est vraiment pour donner la différence entre 2 dates ?
Je n'ai pas trop compris ce que tu voulais faire avec alors je saurais pas dire.
en fait je gère des joueurs donc j'ai une date de naissance et je voudrais récupérer l'age du joueur pour définir sa categorie par exemple -13ans -15ans.
Donc je fait la difference entre la date du jour et la date de naissance.
Il existe aussi une methode qui soustrait deux dates mais elle renvoie le resultat en nombre de jours donc ca ne va pas
OK mais par contre je saisi pas pourquoi tu as veux créer ces 2 méthodes dans 2 classes différentes.
Sinon Tu peux créer une classe Joueur, tu définis la catégorie en quand que propriété publique et la méthode qui calcule l'âge tu la définie en private
oui je pense que je vais me rabattre sur ca.
Je ne voulais pas la déclarer avec la classe car je pensais que ca ne servais a rien de trop charger la classe mais si je n'ai pas le choix...
En tout cas merci beaucoup pour ton aide harz62
Bonsoir,
Ben en fait tu as précisé que tu voulais gérer des joueurs alors moi j'ai pensé à une collection qui contient des objets joueurs à moins que ton appli soit dépendante d'une BDD.
non non pas de base de données.
J'ai déja une collection d'objets joueur mais je ne vois pas vraiment le rapport lol
en quoi cela me facilitera l'utilisation de ma fonction diffDate ??