otavioreis
Messages postés82Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 4 mars 2008
-
17 août 2007 à 10:27
otavioreis
Messages postés82Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 4 mars 2008
-
20 août 2007 à 10:23
Bonjour,
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
J’ai crée une bibliothèque de classes en C#. Il y a fonction 1, fonction 2 et fonction 3.
En sortie, j’ai besoin des résultats de fonction 1 et 3. Les fonctions 1 et 2 sont utilisées en interne pour calculer des variables de la fonction 3(F3 fait appel à F1 et à F2).
Mon pb est :
- pour que je puisse utiliser F1 et F2 en interne, je les ai déclaré en tant que public static F1 et public static F2.
- Par contre, pour récupérer le résultat de F1 et F3 en externe, je ne peux pas les déclarer en static. Mais quand j’enlève le static de F1, j’ai le suivant message d’erreur :
-
Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'Test.Class1.F1(string, int, int, double)'
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 17 août 2007 à 11:00
Je crois que tu as confondu les modificateurs d'accès (public, private, protected, internal et protected internal) et le modificateur static qui permet de définir un membre qui appartient au type plutôt qu'aux instance du type.
Déclarer une méthode static ne permet en rien d'empêcher son utilisation en dehors du type si elle possède un niveau d'accessibilité public.
otavioreis
Messages postés82Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 4 mars 2008 17 août 2007 à 10:48
interne = fonction qui est utilisé seulement dans la classe. Elles sont utilisée pour calculer des paramètre pour une autre fonction de cette classe (F3) . Ces fonctions sont appéllées par la fonction 3.
externe, fonction 3, fonction qui doit être appéllé en dehors de la classe. c'est à dire, function qui un autre programme doit appeller.
Otavio Reis
Vous n’avez pas trouvé la réponse que vous recherchez ?
otavioreis
Messages postés82Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 4 mars 2008 17 août 2007 à 12:45
Merci bcp Coq!
Je comprends bcp mieux le problème. La question est: "Pour quoi quand j'enlève le static de ma déclaration, j'ai le erreur suivant: Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'Test.Class1.F1(string, int, int, double)'?"
Pour quoi je suis oubligé de le laisser en static? Je pensais que je pourrais choisir entre static ou pas....
otavioreis
Messages postés82Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 4 mars 2008 17 août 2007 à 14:02
Je pose ma question autrement. Si j'ai deux fonctions: F1 et F2 et que F1 est aussi appéllée par F2, si je veux récuperer le résultat des deux fonctions, je dois les déclarer en tant que public. en même temps, je dois créer F1 avant de appéller F2. Alors, comment faire cela sans utiliser le static?