using System;
namespace Xyz.Util
{
/// <summary>
/// 包含类型转换相关的方法。
/// </summary>
public static class ConvertUtils
{
/// <summary>
/// 将指定的可转换值转换为指定类型。
/// </summary>
/// <param name="input">可转换值。</param>
/// <param name="toType">目标类型。</param>
/// <returns>若输入值可转换为目标类型,返回转换后的值;否则返回原输入值。</returns>
public static object Convert(IConvertible input, Type toType)
{
if (toType == typeof(bool))
return input.ToBoolean(null);
if (toType == typeof(byte))
return input.ToByte(null);
if (toType == typeof(short))
return input.ToInt16(null);
if (toType == typeof(int))
return input.ToInt32(null);
if (toType == typeof(long))
return input.ToInt64(null);
if (toType == typeof(float))
return input.ToSingle(null);
if (toType == typeof(double))
return input.ToDouble(null);
if (toType == typeof(decimal))
return input.ToDecimal(null);
if (toType == typeof(DateTime))
return input.ToDateTime(null);
return input;
}
public static string ToString(object value)
{
if (value == null)
return "";
return System.Convert.ToString(value);
}
/// <summary>
/// 将字符串转换成<see cref="double"/>,若值无法被转换,返回<paramref name="defaultValue"/>的值。
/// </summary>
/// <param name="value">字符串。</param>
/// <param name="defaultValue">转换失败时返回的默认值。</param>
/// <returns><see cref="double"/>值。若值无法被转换,返回<paramref name="defaultValue"/>的值。</returns>
public static double ToDouble(string value, double defaultValue)
{