C# surchage operateur+

Fermé
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 - 26 déc. 2008 à 19:57
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 - 26 déc. 2008 à 22:25
Bonjour,
je voudais emplémenter un operateur + ayant en paramètre un HexNumber et un int. Mon programme ci-dessous ne se laisse pas compiler. Suis-je sur la bonne voie? Message d'erreur: The name 'result' does not exist in the current context. C'est "(int)result " du console.WritLine(.......)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Rayan1
{
class HexNumber
{
private float num;
public HexNumber(float num)
{
this.num = num;
}
public static HexNumber operator +(HexNumber h1,int h2)
{
return new HexNumber(h1.num+h2);
}
static void Main()
{
HexNumber h1 = new HexNumber(000F);
HexNumber resutlt = h1+17;
Console.WriteLine("{0}+17={1} (={2} dezimal)", h1, resutlt, (int)result);
Console.ReadLine();

}
}



}

merci

6 réponses

halo_quebec Messages postés 161 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 9 juin 2010 10
26 déc. 2008 à 20:20
c'est resutlt ou result ????
0
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 1
26 déc. 2008 à 20:25
c'est result. Ca ne marche pourtant pas : Cannot convert type 'Rayan1.HexNumber' to 'int'
0
halo_quebec Messages postés 161 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 9 juin 2010 10
26 déc. 2008 à 20:55
Si je comprend bien, tu fais une classe qui change les int en hexadecimal et ou tu peut ajouter des int a des hexadeimal...

L'erreur vient du cast d'un hexadecimal en int, il connait pas ton hexadecimal, il fauit que tu lui disent "lorsque je te cast en int, il faut que tu donne "leChiffre" / 16" si je croit que c avec un override de la methode CompareTo qu'il faut que tu le fasse.

Cependant, si tu veut retourner ton chiffre en Hexadecimal (genre 48f2a) tu devrai faire un ToString(), car tu ne peut pas mettre de lettre dans les int (mais sa tu devrai le savoir:P)

En experant que sa t'aide
0
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 1
26 déc. 2008 à 21:47
il ya plus d'erreur de compilation, mais rien ne s#affiche sur la console, je ne comprend pas pourquoi.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Rayan1
{
class HexNumber
{
private float num;
public HexNumber(float num)
{
this.num = num;
}
public static HexNumber operator +(HexNumber h1,int h2)
{
return new HexNumber(h1.num+h2);
}
public static HexNumber operator /(HexNumber a, HexNumber b)
{
return new HexNumber(a.num/b.num);
}
static void Main()
{
HexNumber h1 = new HexNumber(000F);
HexNumber result = h1+17;
Console.WriteLine("{0}+17={1} (={2} dezimal)", h1, result, (int)result);
Console.ReadLine();

}
public static explicit operator int(HexNumber value)
{
return (int)value.num;
}

}





}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
halo_quebec Messages postés 161 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 9 juin 2010 10
26 déc. 2008 à 22:15
ok, tout d'abord, c'est quoi que tu veux afficher la dedans?

Console.WriteLine("{0}+17={1} (={2} dezimal)", h1, resutlt, (int)result);

pour le (int)result, veut tu afficher ton nombre en hexandecimal ou sa valeur en int(sur la base 10)?
0
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 1
26 déc. 2008 à 22:25
je veux afficher les deux ie le nombre en hexandecimal et sa valeur en int
0