强制转型和用Convert.ToXXX有什么区别?
例如我有一个float f;
然后
decimal d=(decimal)f;
decimal d=Convert.ToDecimal(f);
public static decimal ToDecimal(bool value)
{
return ((value != null) ? 1 : 0);
}
public static decimal ToDecimal(byte value)
{
return value;
}
public static decimal ToDecimal(char value)
{
return ((char) value).ToDecimal(null);
}
public static decimal ToDecimal(DateTime value)
{
return ((DateTime) value).ToDecimal(null);
}
public static decimal ToDecimal(decimal value)
{
return value;
}
public static decimal ToDecimal(double value)
{
return (decimal) ((double) value);
}
public static decimal ToDecimal(short value)
{
return value;
}
public static decimal ToDecimal(int value)
{
return value;
}
public static decimal ToDecimal(long value)
{
return value;
}
public static decimal ToDecimal(object value)
{
if (value == null)
{
goto Label_0010;
}
return ((IConvertible) value).ToDecimal(null);
Label_0010:
return new decimal(0);
}
public static decimal ToDecimal(sbyte value)
{
return value;
}
public static decimal ToDecimal(float value)
{
return (decimal) ((float) value);
}
public static decimal ToDecimal(string value)
{
if (value != null)
{
goto Label_000A;
}
return new decimal(0);
Label_000A:
return decimal.Parse(value, CultureInfo.CurrentCulture);
}
public static decimal ToDecimal(ushort value)
{
return value;
}
public static decimal ToDecimal(uint value)
{
return value;
}
public static decimal ToDecimal(ulong value)
{
return value;
}
public static decimal ToDecimal(object value, IFormatProvider provider)
{
if (value == null)
{
goto Label_0010;
}
return ((IConvertible) value).ToDecimal(provider);
Label_0010:
return new decimal(0);
}
public static decimal ToDecimal(string value, IFormatProvider provider)
{
if (value != null)
{
goto Label_000A;
}
return new decimal(0);
Label_000A:
return decimal.Parse(value, 0x6f, provider);
}