C# Extension Method: Object - ToNullableDecimal

CSharp · Console

/Program.cs

// C# Extension Method
// Doc: https://csharp-extension.com/en/method/1002508/object-tonullabledecimal

// @nuget: Z.ExtensionMethods

using System;
					
public class Program
{
	public static void Main()
	{
        object[] values = { true, null, 'a', 123, 1.764e32, "9.78", "1e-02",
                1.67e03, "A100", "1,033.67", DateTime.Now, Double.MaxValue };

        foreach (object value in values)
        {
            try
            {
				//C# Extension Method: Object - ToNullableDecimal
                decimal? result = value.ToNullableDecimal();
                Console.WriteLine("Converted the {0} value {1} to {2}.",
                                  value == null ? "null" : value.GetType().Name, 
								  value == null ? "null" : value, 
								  result == null ? "null" : result.ToString());
            }
            catch (OverflowException)
            {
                Console.WriteLine("The {0} value {1} is out of range of the Decimal type.",
                                  value == null ? "null" : value.GetType().Name, value);
            }
            catch (FormatException)
            {
                Console.WriteLine("The {0} value {1} is not recognized as a valid Decimal value.",
                                  value == null ? "null" : value.GetType().Name, value);
            }
            catch (InvalidCastException)
            {
                Console.WriteLine("Conversion of the {0} value {1} to a Decimal is not supported.",
                                  value == null ? "null" : value.GetType().Name, value);
            }
        }
	}
}
;