Je commence depuis peu en c#peut s'interpréter je change de langage ou je débuté complètement la programmation par c#.
List<string> param = new List<string>();//stock la valeur initial List<string> sens = new List<string>();//stock le sens du bras initial List<string> bras = new List<string>();//stock le nom du bras List<Pen> couleur = new List<Pen>();//stock le stylo //.... param.Add(this.tb_tri2.Text); sens.Add(this.cmb_tri2.SelectedIndex.ToString()); bras.Add("Bras 2"); if (chb_ModeDaltonien.Checked) //si mode daltonien couleur.Add(new Pen(Color.Navy, 2)); else //sinon couleur.Add(new Pen(Color.Maroon, 2));
class LeTrucASeb { public LeTrucASeb(string Param, string Sens, string Bras, Pen Pinceau) { this.Param = Param; this.Sens = Sens; this.Bras = Bras; this.Pinceau = Pinceau; } public string Param { get; set; } public string Sens { get; set; } public string Bras { get; set; } public Pen Pinceau { get; set; } }
List<LeTrucASeb> mesTrucs = new List<LeTrucASeb>(); mesTrucs.Add(this.tb_tri2.Text, this.cmb_tri2.SelectedIndex.ToString(), "Bras 2", chb_ModeDaltonien.Checked ? new Pen(Color.Navy, 2) : new Pen(Color.Maroon, 2));
Mais par contre je ne comprend pas pourquoi visual ne me retourné aucune erreur.
private double ToDouble(string Valeur) { //on pourrait regarder la culture du Thread et chnager la virugle en point quand on est US et l'inverse quand on est Fr //Mais finalement forcer la conversion en US et remplacer une éventuelle virgule en point suffit dans la majorité des cas (ça ne gère pas les nombres ou le séparateur des milliers est la virgule) double resultat; if (double.TryParse(Valeur.Replace(',','.').Replace(" ", ""), NumberStyles.Number, CultureInfo.InvariantCulture, out resultat)) return resultat; //si la conversion rate, on retourne une valeur par défaut, pour l'exemple je retoune Not A Number return double.NaN; }
List<double> testConversion = new List<double>(); testConversion.Add(ToDouble("1.2")); testConversion.Add(ToDouble("2,3")); testConversion.Add(ToDouble("1 234,5")); testConversion.Add(ToDouble("2 345.6")); testConversion.Add(ToDouble("3,456.7"));//seul cekui kà n'est pas converti, car une fois la virgule en point ça donne 3.456.7
[http://regexstorm.net/tester?p=%5B%2B-%5D%3F%28%3F%3A%5Cd%7B1%2C3%7D+%3F%29%2A%5Cd%7B1%2C3%7D%28%3F%3A%2C%5Cd%7B1%2C3%7D%28%3F%3A+%3F%5Cd%7B1%2C3%7D%29%2A%29%3F&i=123+456%2C12%0D%0A123456%2C12%0D%0A%2B123+456%2C12%0D%0A-123456%2C12%0D%0A123+456+789%2C123445679%0D%0A123+456+789%2C123+456+789%0D%0A123+456+789%0D%0A123+456+789 [+-]?(?:\d{1,3} ?)*\d{1,3}(?:,\d{1,3}(?: ?\d{1,3})*)?]
private double ToDouble(string Valeur) { CultureInfo culture; //on va faire une regex pour voir si on est en FR if (Regex.IsMatch(Valeur, @"^[+-]?(?:\d{1,3} ?)*\d{1,3}(?:,\d{1,3}(?: ?\d{1,3})*)?$")) culture = CultureInfo.GetCultureInfo("FR"); else if (Regex.IsMatch(Valeur, @"^[+-]?(?:\d{1,3},?)*\d{1,3}(?:\.\d{1,3}(?:,?\d{1,3})*)?$")) culture = CultureInfo.GetCultureInfo("US"); else if (Regex.IsMatch(Valeur, @"^[+-]?(?:\d{1,3} ?)*\d{1,3}(?:\.\d{1,3}(?: ?\d{1,3})*)?$")) { Valeur = Valeur.Replace(" ", ""); culture = CultureInfo.GetCultureInfo("US"); } else return double.NaN; return double.Parse(Valeur, culture); }
List<double> testConversion = new List<double>(); testConversion.Add(ToDouble("1.2")); testConversion.Add(ToDouble("2,3")); testConversion.Add(ToDouble("1 234,5")); testConversion.Add(ToDouble("2 345.6")); testConversion.Add(ToDouble("3,456.7")); testConversion.Add(ToDouble("3 456.7£"));//seul celui-ci n'est pas convertit car c'est une monnaie
DrawLine(Pinceaux, (float)double1, (float)double2, (float)double3, (float)double3)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
15 mars 2018 à 18:14
15 mars 2018 à 18:39
15 mars 2018 à 18:41
15 mars 2018 à 20:25
Quasiment aucune, la preuve :D
Corrigé :)
15 mars 2018 à 20:59