public static double ToDouble(this object value, bool safe = true)
object validObjectInt = 123;
object validObjectString = "123.456";
object validObjectDouble = 123.456d;
object nullObject = null;
validObjectInt.ToDouble(true);
validObjectInt.ToDouble(false);
validObjectString.ToDouble(true);
validObjectString.ToDouble(false);
validObjectDouble.ToDouble(true);
validObjectDouble.ToDouble(false);
nullObject.ToDouble(true);
nullObject.ToDouble(false);
123d
123d
123.456d
123.456d
123.456d
123.456d
0d
ArgumentException