<#@ template language="C#" debug="true" hostSpecific="true" #> <#@ Assembly Name="System.Core.dll" #> <#@ import namespace="System" #> <#@ import namespace="System.Text" #> <#@ import namespace="System.Linq" #> <#@ import namespace="System.Collections.Generic" #> <#@ import namespace="System.Globalization" #> <#@ output extension=".cs" #> // Attention : ce fichier a été automatiquement généré par un // template T4. Toute modification manuelle sera écrasée !!! <# var types = new[] { new { ShortName = "byte", Type = typeof(byte), TypicalStyle = "NumberStyles.Integer" }, new { ShortName = "sbyte", Type = typeof(sbyte), TypicalStyle = "NumberStyles.Integer" }, new { ShortName = "short", Type = typeof(short), TypicalStyle = "NumberStyles.Integer" }, new { ShortName = "ushort", Type = typeof(ushort), TypicalStyle = "NumberStyles.Integer" }, new { ShortName = "int", Type = typeof(int), TypicalStyle = "NumberStyles.Integer" }, new { ShortName = "uint", Type = typeof(uint), TypicalStyle = "NumberStyles.Integer" }, new { ShortName = "long", Type = typeof(long), TypicalStyle = "NumberStyles.Integer" }, new { ShortName = "ulong", Type = typeof(ulong), TypicalStyle = "NumberStyles.Integer" }, new { ShortName = "float", Type = typeof(float), TypicalStyle = "NumberStyles.Float combiné à NumberStyles.AllowThousands" }, new { ShortName = "double", Type = typeof(double), TypicalStyle = "NumberStyles.Float combiné à NumberStyles.AllowThousands" }, new { ShortName = "decimal", Type = typeof(decimal), TypicalStyle = "NumberStyles.Number" }, }; #> using System; using System.Collections.Generic; using System.Globalization; namespace Developpez.Dotnet { public static partial class Numbers { private static readonly Dictionary _parsers; private static readonly Dictionary _parsersWithStyleAndProvider; static Numbers() { _parsers = new Dictionary { <# foreach (var t in types) { #> { typeof(<#= t.ShortName #>), new Func?>(TryParse<#= t.Type.Name #>) }, <# } #> }; _parsersWithStyleAndProvider = new Dictionary { <# foreach (var t in types) { #> { typeof(<#= t.ShortName #>), new Func?>(TryParse<#= t.Type.Name #>) }, <# } #> }; } <# foreach (var t in types) { #> /// /// Tente de convertir une chaine de caractères en <#= t.Type.Name #>. /// /// Chaine à convertir /// La valeur <#= t.Type.Name #> si la conversion réussit; sinon, null. public static <#= t.ShortName #>? TryParse<#= t.Type.Name #>(string s) { <#= t.ShortName #> value; if (<#= t.ShortName #>.TryParse(s, out value)) return value; return null; } /// /// Tente de convertir une chaine de caractères en <#= t.Type.Name #>. /// /// Chaine à convertir /// Une combinaison de valeurs NumberStyles indiquant le format autorisé de s. Une valeur typique à spécifier est <#= t.TypicalStyle #>. /// qui fournit des informations de format propres à la culture concernant s. /// La valeur <#= t.Type.Name #> si la conversion réussit; sinon, null. public static <#= t.ShortName #>? TryParse<#= t.Type.Name #>(string s, NumberStyles style, IFormatProvider provider) { <#= t.ShortName #> value; if (<#= t.ShortName #>.TryParse(s, style, provider, out value)) return value; return null; } <# } #> } }