Se connecter

Informatique

Programmation

Sujet : CS0120 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique
1
seb16120
Niveau 11
26 juin 2017 à 19:57:26

Bonjours pourquoi j'ai cette erreur ? :

https://www.noelshack.com/2017-26-1-1498499823-vs-acti.jpg

VM-Varga
Niveau 10
26 juin 2017 à 20:13:30

Tu ne peux pas faire un appel d'une méthode comme ça si elle n'est pas déclaré en "static" ou au sein d'une classe elle même statique.

Un membre statique signifie qu'il n'est pas lié à une instance mais à une classe.

Dans ton main, on ne sais pas ce qu'est TirageAuSort et à quoi il est attaché.
Soit tu créé une instance de ta classe Program et fait un appel de ta méthode, soit tu déclares la méthode comme statique et tu n'a pas besoin d'instancier (avec un new).

seb16120
Niveau 11
26 juin 2017 à 20:20:22

ah oui ^^ c'est le static que j'ai oublier devant la methode ^^

Merci ^^

"Un membre statique signifie qu'il n'est pas lié à une instance mais à une classe."

instance = Variables ?
Classe = ? (je connais classe d'équivalence en Maths mais je doute que ce soit cela) :v)

seb16120
Niveau 11
26 juin 2017 à 20:59:27

et

Comment on peux faire un tirage de nombres aléatoires ?

seb16120
Niveau 11
26 juin 2017 à 21:21:32

sous-question : comment donné une probabilité à une variable ?

ex : x à 10% d’être vrai donc 90% d’être faux ?

car je voudrais crée ma propre méthode : "Nombre aléatoire"

c'est plus intéressant que d'utiliser des outils existants ^^ (dans le contexte d'apprentissage)

Candystand
Niveau 10
26 juin 2017 à 23:30:51

Le 26 juin 2017 à 20:20:22 seb16120 a écrit :
ah oui ^^ c'est le static que j'ai oublier devant la methode ^^

Merci ^^

"Un membre statique signifie qu'il n'est pas lié à une instance mais à une classe."

instance = Variables ?
Classe = ? (je connais classe d'équivalence en Maths mais je doute que ce soit cela) :v)

Une instance, c'est ton objet, par exemple Program, qui possède une allocation en mémoire. Tu crée une instance grâce au mot clé "new", par exemple Program monInstance = new Program();

Quand ta fonction est liée à une instance, donc qu'elle n'est pas statique, tu utilises le mot clé "this" pour accéder à cette instance, et aux propriétés qui la définissent, exemple this.TirageAuSort(tableau).

Une classe c'est un type que tu vas définir, qui peut être instancié, et qui contient des variables et des méthodes, statiques ou non. Une méthode ou une variable statique n'a pas besoin d'être accédée via une instance.

Hésitez pas à me corriger, c'est pas forcément ultra clair

seb16120
Niveau 11
27 juin 2017 à 18:48:37

ok merci.

dois-je crée un nouveau topic pour :

Le 26 juin 2017 à 20:59:27 seb16120 a écrit :
et

Comment on peux faire un tirage de nombres aléatoires ?

et

Le 26 juin 2017 à 21:21:32 seb16120 a écrit :
sous-question : comment donné une probabilité à une variable ?

ex : x à 10% d’être vrai donc 90% d’être faux ?

car je voudrais crée ma propre méthode : "Nombre aléatoire"

c'est plus intéressant que d'utiliser des outils existants ^^ (dans le contexte d'apprentissage)

?

TechnoForce3
Niveau 36
27 juin 2017 à 19:05:20

Autre détail (après j'ai jamais fais de c# mais ça me semble bizarre), le paramètre que tu passes à ta fonction n'est pas utilisé et tu retournes un nouveau tableau que tu déclares. Donc soit tu mets pas de paramètres à ta méthode et tu l'utilise avec
Tableau = TirageAuSort();
Soit tu passes ton tableau par référence ou out (j'ai pas encore vu la différence entre ces 2 mots clés dans ma rapide recherce) et tu modifie le tableau passé en paramètre sans en créer un nouveau et tu retourne rien et met en void ta méthode.

TechnoForce3
Niveau 36
27 juin 2017 à 19:22:10

Pour tes nombres random. Tu as une classe Random qui est incluse dans la bibliothèque System.
Tu instancies un objet de cette classe et tu l'utilises :
int nb = Obj.next(); ///renvoie un entier non négatif int nb = Obj.next(5); ///renvoie un entier non négatif inférieur à 5 int nb = Obj.newt(1,5); ///renvoie un entier non compris entre 1 et 5

Pour ta sous-question, je pense que tu as compris que tu peux te servir de la dernière méthode pour obtenir le résultat que tu veux :ok:

1
Sujet : CS0120 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique
   Retour haut de page
Consulter la version web de cette page