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
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
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
26 déc. 2008 à 20:20
c'est resutlt ou result ????
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
26 déc. 2008 à 20:25
c'est result. Ca ne marche pourtant pas : Cannot convert type 'Rayan1.HexNumber' to 'int'
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
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
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
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
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;
}
}
}
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;
}
}
}
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
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)?
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)?
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
26 déc. 2008 à 22:25
je veux afficher les deux ie le nombre en hexandecimal et sa valeur en int