Demande D'aide sur 2 erreurs

Signaler
Messages postés
12
Date d'inscription
dimanche 15 novembre 2009
Statut
Membre
Dernière intervention
6 mai 2011
-
Messages postés
12
Date d'inscription
dimanche 15 novembre 2009
Statut
Membre
Dernière intervention
6 mai 2011
-
Bonjour,

Je viens vous faire une demande d'aide pour 2 erreurs que je me prend la tête donc si vous pouvez me venir en aide voila les code suivit des erreur :

Code 1
public int TimeRecruitment
              {
          get { return Math.Ceiling((QuotaRecruitment - Environment.TickCount) / 1000); }
       }


Erreur : Erreur 11 Impossible de convertir implicitement le type 'double' en 'int'. Une conversion explicite existe (un cast est-il manquant ?)
Code 2 :
public void SetRecruitment()
          {
             QuotaRecruitment = Environment.TickCount + (Utils.Config.ANTISPAM_RECRUITMENT) * 1000);
        }

Erreur : Erreur 12 Impossible de convertir implicitement le type 'double' en 'int'. Une conversion explicite existe (un cast est-il manquant ?)





Code Global :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Text.RegularExpressions;
using System.Net;
using System.Drawing;
using System.Globalization;

namespace Game
{
    class GameSpam
    {
          private int QuotaRecruitment = 0;

     
      public int TimeRecruitment
              {
          get { return Math.Ceiling((QuotaRecruitment - Environment.TickCount) / 1000); }
       }

 

            public bool CanRecruitment
         {
              get { return TimeRecruitment <= 0; }
        }

 
  }

           public void SetRecruitment()
          {
             QuotaRecruitment = Environment.TickCount + (Utils.Config.ANTISPAM_RECRUITMENT) * 1000);
        }







    }
}



Merci de me venir en aide

9 réponses

Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
c'est parce que la fonction "Math.Ceiling" renvoie un "double" et non un entier "int" donc ton accesseur devrait être défini comme ceci:
...
public double TimeRecruitment
{
 get { return Math.Ceiling((QuotaRecruitment - Environment.TickCount) / 1000); }
}
...

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Messages postés
12
Date d'inscription
dimanche 15 novembre 2009
Statut
Membre
Dernière intervention
6 mai 2011

C'est peut être moi mais je voit pas ce qui change
Messages postés
12
Date d'inscription
dimanche 15 novembre 2009
Statut
Membre
Dernière intervention
6 mai 2011

Si j'ai vu mais j'ai du coup une autre erreur qui vient :


Erreur 10 L'appel est ambigu entre les méthodes ou propriétés suivantes : 'System.Math.Ceiling(double)' et 'System.Math.Ceiling(decimal)'
Messages postés
12
Date d'inscription
dimanche 15 novembre 2009
Statut
Membre
Dernière intervention
6 mai 2011

j'ai fini par trouver me manque juste une chose sur

 QuotaRecruitment = Environment.TickCount + (Utils.Config.ANTISPAM_RECRUITMENT) * 1000);



Voila les erreur sur cette ligne

Erreur 10 ; attendu
Erreur 8 Seuls une assignation, un appel, un incrément, un décrément et des expressions d'objet new peuvent être utilisés comme instruction
Erreur 9 Terme d'expression non valide ')'
Messages postés
12
Date d'inscription
dimanche 15 novembre 2009
Statut
Membre
Dernière intervention
6 mai 2011

J'ai trouvé Résolu
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
c'est parceque tu mélanges les types de manière très désordonnée,la signature de Math.ceiling() est:
double Math.Ceiling(double) ou double Math.Ceiling(decimal) donc avec ceci ça devrait aller:
private double QuotaRecruitment = 0;
public double  TimeRecruitment
        {
            get { return Math.Ceiling((QuotaRecruitment - Environment.TickCount) / 1000); }
        }


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Messages postés
12
Date d'inscription
dimanche 15 novembre 2009
Statut
Membre
Dernière intervention
6 mai 2011

Oui merci sinon je sais pas mais sur l'autre code qui utilise tout cela j'ai d'autre problèmes voila les codes :

J'ai mis l'ensemble des erreurs donc merci de prendre le temps de regarder

        public static void SendRecruitmentMessage(TCPSocket Client, string Message)
        {
            if (((Player)Client.Tag).CurrentCharacter.IsMuted)
            {
                SystemMessage.SendMessage(Client, "Vous êtes muté");
                return;
            }
            if (Game.GameSpam.CanRecruitment)
            {
                Game.GameSpam.SetRecruitment();
                Players.Send("cMK?|" + Client.Character.ID + "|" + Client.Character.Name + "|" + Message);
            }
            else
            {
                Client.Send("Im0115;" + Game.GameSpam.TimeRecruitment);
            }

        }


Cela utilise les code précédant


Mais voila les erreurs






Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'Game.GameSpam.CanRecruitment.get'
Erreur 2 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'Game.GameSpam.SetRecruitment()'
Erreur 3 Le nom 'Players' n'existe pas dans le contexte actuel
Erreur 4 'Utils.Socket.TCPSocket' ne contient pas une définition pour 'Character' et aucune méthode d'extension 'Character' acceptant un premier argument de type 'Utils.Socket.TCPSocket' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante ?)
Erreur 5 'Utils.Socket.TCPSocket' ne contient pas une définition pour 'Character' et aucune méthode d'extension 'Character' acceptant un premier argument de type 'Utils.Socket.TCPSocket' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante ?)
Erreur 6 'Utils.Socket.TCPSocket' ne contient pas une définition pour 'Send' et aucune méthode d'extension 'Send' acceptant un premier argument de type 'Utils.Socket.TCPSocket' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante ?)
Erreur 7 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'Game.GameSpam.TimeRecruitment.get'
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
Wooow,tu mélanges vraiment tout avec tout...
Premièrement,pour les erreurs 1,2 et 7,tu dois faire des instanciations c.à.d créer des objets qui eux vont pouvoir utiliser les méthodes,les accesseurs et les mutateurs de la classe "GameSpam" tu peux pas utiliser cela comme tu l'as fait "Game.GameSpam.CanRecruitment" ou " Game.GameSpam.SetRecruitment()"...je te conseillerai donc de revoir un peu les concepts de base de la POO(Programmation Orientée Objet)

et pour les erreurs 4,5,6 ça veut juste dire que tu utilises des objets qui n'ont pas été référencés au préalables dans ton projet(c.à.d dans les clauses 'Using' au tout début) ou tout simplement les méthodes que tu utilises n'existent pas dans la définition de ta classe "Utils.Socket.TCPSocket"

Donc essaie de revoir un peu tout et tu y verras un peu plus claire...
Bonne Continuation!!

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Messages postés
12
Date d'inscription
dimanche 15 novembre 2009
Statut
Membre
Dernière intervention
6 mai 2011

Okay merci bien mais pourrais tu me faire part d'un exemple afin que

Cela fonctionne afin que je puisse finir l'ensemble vu que il me manque plus que cela :

Game.GameSpam.SetRecruitment();


Merci bien