When using object.ToString(), or <primitive>.Parse(), TryParse(), any more ideas?

Ya… Es ist…

  1. Which language and Culture are you handling with?
  2. Do you want to format via IFormattable interface or parsing it?

MSDN Link :

  •   Help View Home/Visual Studio 2010/.Net Framework 4/.Net Framework Core Development/Working with Base Type/Formatting Types or Parsing Strings [strongly recommend]
  •   CLR via C# Version 3, Jeffery Richter – Page 309

Just shared with you the code.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Globalization;

namespace _14_Strings
{
class Program
{
/// <summary>
/// Static method for formatting of Deutsch string -> Help View Home/Visual Studio 2010/.Net Framework 4/.Net Framework Core Development/Working with Base Type/Formatting Types or Parsing Strings
/// Jeffery Richter – Page 309
/// </summary>
static void IFormatProviderTest()
{
//foreach (CultureInfo item in System.Globalization.CultureInfo.GetCultures(CultureTypes.AllCultures)) //CultureTypes Enumeration
//{
//    Trace.WriteLine(item.ToString());
//}
decimal lNumericBase = 10000000L;//Int64->long
Trace.WriteLine(lNumericBase.ToString(“C”, new CultureInfo(“de-DE”)));
//Trace.WriteLine(lNumericBase.ToString(“D”, new CultureInfo(“de-DE”))); //Invalid format
Trace.WriteLine(lNumericBase.ToString(“N”, new CultureInfo(“de-DE”)));
string strNumericBase = lNumericBase.ToString(“N”, new CultureInfo(“de-DE”));

long number;
IFormatProvider provider = CultureInfo.CreateSpecificCulture(“de-DE”);

if (long.TryParse(strNumericBase, NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint, //NumberStyles.Number -> Group NumberStyles Enumeration
provider, out number))
{
Trace.WriteLine(number);
}

strNumericBase = lNumericBase.ToString(“N”, new CultureInfo(“de-DE”));
if (long.TryParse(strNumericBase, NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint, //NumberStyles.Number -> Group NumberStyles Enumeration
provider, out number))
{
Trace.WriteLine(number);
}
}

static void Main(string[] args)
{
Program.IFormatProviderTest();
}
}
}

Comparison in Run-time:


Advertisements