Object - ToNullableUInt32

An object extension method that converts the @this to a nullable u int 32.

Try it

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};
    uint? result;

    foreach (object value in values)
    {
        try
        {
			//C# Extension Method: Object - ToNullableUInt32
            result = value.ToNullableUInt32();
            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 Int32 type.",
                              value.GetType().Name, value);
        }
        catch (FormatException)
        {
            Console.WriteLine("The {0} value {1} is not in a recognizable format.",
                              value.GetType().Name, value);
        }
        catch (InvalidCastException)
        {
            Console.WriteLine("No conversion to an Int32 exists for the {0} value {1}.",
                              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 32.
    /// </summary>
    /// <param name="this">The @this to act on.</param>
    /// <returns>@this as an uint?</returns>
    public static uint? ToNullableUInt32(this object @this)
    {
        if (@this == null || @this == DBNull.Value)
        {
            return null;
        }

        return Convert.ToUInt32(@this);
    }
}