uint color;
bool parsedhex = uint.TryParse(TextBox1.Text, out color);
//where Text is of the form 0xFF0000
if(parsedhex)
//...
ne fonctionne pas. Qu'est-ce que je fais mal?
uint color;
bool parsedhex = uint.TryParse(TextBox1.Text, out color);
//where Text is of the form 0xFF0000
if(parsedhex)
//...
ne fonctionne pas. Qu'est-ce que je fais mal?
Vous pouvez utiliser une surcharge TryParse() qui ajoute une NumberStyle paramètre à la TryParse appel qui fournit l'analyse de valeurs Hexadécimales. Utilisation NumberStyles.HexNumber qui vous permet de passer la chaîne d'un nombre hexadécimal. Le problème avec NumberStyles.HexNumber est qu'il ne prend pas en charge le " 0x " préfixe, de sorte que vous devez bande de hors tension avant d'essayer d'analyser la valeur.
Fondamentalement, vous feriez ceci:
uint color;
var hex = TextBox1.Text;
if (hex.StartsWith("0x", StringComparison.CurrentCultureIgnoreCase))
{
hex = hex.Substring(2);
}
bool parsedSuccessfully = uint.TryParse(hex,
NumberStyles.HexNumber,
CultureInfo.CurrentCulture,
out color);
Voir cet article pour un exemple d'utilisation de l'énumération NumberStyles: http://msdn.microsoft.com/en-us/library/zf50za27.aspx
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.