Object - ToNullableUInt64
An object extension method that converts the @this to a nullable u int 64.
public static void Main() { object[] values = { true, null, -12, 163, 935, 'x', new DateTime(2009, 5, 12), "104", "103.0", "-1", "1.00e2", "One", 1.00e2, 16.3e42}; ulong? result; foreach (object value in values) { try { //C# Extension Method: Object - ToNullableUInt64 result = value.ToNullableUInt64(); Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", value == null ? "null" : value.GetType().Name, value == null ? "null" : value, result == null ? "null" : result.GetType().Name, result == null ? "null" : result.ToString()); } catch (OverflowException) { Console.WriteLine("The {0} value {1} is outside the range of the long type.", value == null ? "null" : value.GetType().Name, value); } catch (FormatException) { Console.WriteLine("The {0} value {1} is not in a recognizable format.", value == null ? "null" : value.GetType().Name, value); } catch (InvalidCastException) { Console.WriteLine("No conversion to an long exists for the {0} value {1}.", value == null ? "null" : value.GetType().Name, value); } } }
View Source
using System; public static partial class Extensions { /// <summary> /// An object extension method that converts the @this to a nullable u int 64. /// </summary> /// <param name="this">The @this to act on.</param> /// <returns>@this as an ulong?</returns> public static ulong? ToNullableUInt64(this object @this) { if (@this == null || @this == DBNull.Value) { return null; } return Convert.ToUInt64(@this); } }