C# surchage operateur+
gilles81
Messages postés
72
Statut
Membre
-
gilles81 Messages postés 72 Statut Membre -
gilles81 Messages postés 72 Statut Membre -
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
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
A voir également:
- C# surchage operateur+
- Opérateur de réseau mobile - Guide
- 0668 quel opérateur ✓ - Forum Mobile
- 0758 quel opérateur - Forum Opérateurs & Réseaux mobiles
- 0466 quel opérateur - Forum Mobile
- 0785 quel operateur ✓ - Forum Mobile
6 réponses
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
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