Int16.TryParse, méthode (String, NumberStyles, IFormatProvider, Int16%)
Mise à jour : novembre 2007
Convertit la chaîne d'un nombre dans un style et un format propre à une culture spécifiés en entier signé 16 bits équivalent. Une valeur de retour indique si la conversion a réussi ou a échoué.
Assembly : mscorlib (dans mscorlib.dll)
public static bool TryParse( string s, NumberStyles style, IFormatProvider provider, out short result )
public static boolean TryParse( String s, NumberStyles style, IFormatProvider provider, /** @attribute OutAttribute */ /** @ref */short result )
public static function TryParse( s : String, style : NumberStyles, provider : IFormatProvider, result : short ) : boolean
Paramètres
- s
- Type : System.String
Chaîne contenant un nombre à convertir. La chaîne est interprétée à l'aide du style spécifié par style.
- style
- Type : System.Globalization.NumberStyles
Combinaison de bits de valeurs d'énumération qui indique les éléments de style pouvant être présents dans s. Une valeur typique à spécifier est NumberStyles.Integer.
- provider
- Type : System.IFormatProvider
Objet qui fournit des informations de mise en forme propres à la culture sur s.
- result
- Type : System.Int16%
Lorsque cette méthode est retournée, contient la valeur de l'entier signé 16 bits équivalente au nombre contenu dans s si la conversion a réussi, ou zéro si elle a échoué. La conversion échoue si le paramètre s est null, qu'il n'est pas dans un format conforme à style ou qu'il représente un nombre inférieur à MinValue ou supérieur à MaxValue. Ce paramètre est passé sans être initialisé.
| Exception | Condition |
|---|---|
| ArgumentException | style n'est pas une valeur NumberStyles. – ou – style n'est pas une combinaison de valeurs AllowHexSpecifier et HexNumber. |
La méthode Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) se distingue de la méthode Int16.Parse(String, NumberStyles, IFormatProvider) en retournant une valeur booléenne qui indique si l'opération d'analyse a réussi, au lieu de retourner la valeur Int16 analysée. Elle supprime la nécessité d'utiliser la gestion des exceptions pour tester une FormatException dans le cas où s n'est pas valide et ne peut pas être analysé avec succès.
Le paramètre style définit les éléments de style (un espace blanc ou un signe positif ou négatif, par exemple) autorisés dans le paramètre s pour que l'opération d'analyse réussisse. Il doit s'agir d'une combinaison de bits indicateurs issus de l'énumération NumberStyles. Selon la valeur du style, le paramètre s peut inclure les éléments suivants :
[ws][$][signe][chiffres,]chiffres[.chiffres_fractionnaires][e[signe]chiffres][ws]
Ou, si le paramètre style inclut NumberStyles.AllowHexSpecifier :
[ws]chiffreshex[ws]
Les éléments entre crochets ([ et ]) sont facultatifs. Le tableau suivant décrit les différents éléments.
Element | Description |
|---|---|
ws | Espace blanc facultatif. L'espace blanc peut apparaître au début de s si style inclut l'indicateur NumberStyles.AllowLeadingWhite, ou à la fin de s si style inclut l'indicateur NumberStyles.AllowTrailingWhite. |
$ | Symbole monétaire spécifique à la culture. Sa position dans la chaîne est définie par la propriété CurrencyPositivePattern de l'objet NumberFormatInfo retourné par la méthode GetFormat du paramètre provider. Le symbole monétaire peut apparaître dans s si style inclut l'indicateur NumberStyles.AllowCurrencySymbol. |
signe | Signe facultatif. |
chiffres | Séquence de chiffres compris entre 0 et 9. |
, | Séparateur des milliers spécifique à la culture. Le séparateur des milliers de la culture spécifiée par provider peut apparaître dans s si style inclut l'indicateur NumberStyles.AllowThousands. |
. | Symbole de séparateur décimal spécifique à la culture. Le symbole de virgule décimale de la culture spécifiée par provider peut apparaître dans s si style inclut l'indicateur NumberStyles.AllowDecimalPoint. |
chiffres_fractionnaires | Une ou plusieurs occurrences du chiffre 0. Les chiffres fractionnaires apparaissent uniquement dans s si style inclut l'indicateur NumberStyles.AllowDecimalPoint. |
e | Caractère e ou E, qui indique que la valeur est représentée en notation exponentielle. Le paramètre s peut représenter un nombre en notation exponentielle si style inclut l'indicateur NumberStyles.AllowExponent. |
chiffreshex | Séquence de chiffres hexadécimaux compris entre 0 et f, ou 0 et F. |
Une chaîne contenant uniquement des chiffres décimaux (ce qui correspond à l'indicateur NumberStyles.None) est toujours analysée avec succès. La plupart des membres NumberStyles restants contrôlent des éléments qui peuvent être présents, sans que ce soit obligatoire, dans cette chaîne d'entrée. Le tableau suivant montre de quelle manière des membres NumberStyles individuels affectent les éléments qui peuvent être présents dans s.
Valeurs NumberStyles non composites | Éléments autorisés dans s en plus des chiffres |
|---|---|
Chiffres décimaux uniquement. | |
Éléments . et chiffres_fractionnaires. Les chiffres_fractionnaires doivent toutefois contenir un ou plusieurs chiffres 0, sinon la méthode retourne la valeur false. | |
Le paramètre s peut également utiliser la notation exponentielle. Si s représente un nombre en notation exponentielle, il doit représenter un entier dans la plage du type de données Int16 sans composant différent de zéro et fractionnaire. | |
Élément ws au début de s. | |
Élément ws à la fin de s. | |
Un signe peut apparaître devant les chiffres. | |
Un signe peut apparaître après les chiffres. | |
Élément signe sous la forme de parenthèses entourant la valeur numérique. | |
Élément HTML,. | |
Élément HTML $. | |
Tous les éléments. Le paramètre s ne peut pas représenter un nombre hexadécimal ni un nombre en notation exponentielle. | |
Élément ws au début ou à la fin de s, signe au début de s et symbole .. Le paramètre s peut également utiliser la notation exponentielle. | |
Éléments ws, signe, séparateur des milliers (,) et séparateur décimal (.). | |
Tous les styles, à l'exception de s qui ne peut pas représenter un nombre hexadécimal. |
Si l'indicateur NumberStyles.AllowHexSpecifier est utilisé, s doit être une valeur hexadécimale. Les seuls autres indicateurs qui peuvent être présents dans style sont NumberStyles.AllowLeadingWhite et NumberStyles.AllowTrailingWhite. (L'énumération NumberStyles a un style composite, NumberStyles.HexNumber, qui inclut les deux indicateurs d'espace blanc.)
Le paramètre provider est une implémentation IFormatProvider, telle qu'un objet CultureInfo ou un objet NumberFormatInfo, dont la méthode GetFormat retourne un objet NumberFormatInfo. L'objet NumberFormatInfo fournit des informations propres à la culture sur le format de s. Si provider est null, l'objet NumberFormatInfo de la culture actuelle est utilisé.
L'exemple suivant appelle la méthode Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) avec plusieurs valeurs de chaîne différentes.
using System; using System.Globalization; public class StringParsing { public static void Main() { string numericString; NumberStyles styles; numericString = "10677"; styles = NumberStyles.Integer; CallTryParse(numericString, styles); numericString = "-30677"; styles = NumberStyles.None; CallTryParse(numericString, styles); numericString = "10345.00"; styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint; CallTryParse(numericString, styles); numericString = "10345.72"; styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint; CallTryParse(numericString, styles); numericString = "22,593"; styles = NumberStyles.Integer | NumberStyles.AllowThousands; CallTryParse(numericString, styles); numericString = "12E-01"; styles = NumberStyles.Integer | NumberStyles.AllowExponent; CallTryParse(numericString, styles); numericString = "12E03"; CallTryParse(numericString, styles); numericString = "80c1"; CallTryParse(numericString, NumberStyles.HexNumber); numericString = "0x80C1"; CallTryParse(numericString, NumberStyles.HexNumber); } private static void CallTryParse(string stringToConvert, NumberStyles styles) { short number; bool result = Int16.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture, out number); if (result) Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number); else Console.WriteLine("Attempted conversion of '{0}' failed.", Convert.ToString(stringToConvert)); } } // The example displays the following output to the console: // Converted '10677' to 10677. // Attempted conversion of '-30677' failed. // Converted '10345.00' to 10345. // Attempted conversion of '10345.72' failed. // Converted '22,593' to 22593. // Attempted conversion of '12E-01' failed. // Converted '12E03' to 12000. // Converted '80c1' to -32575. // Attempted conversion of '0x80C1' failed.
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.