using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Globalization;
namespace xxxx
{
public static class SafeConvert
{
/// <summary>
/// 判断对像是否是空对象,例数据表中某列内某行为空
/// </summary>
/// <param name="obj">侍判断的对象</param>
/// <returns>对像是否是空对象</returns>
public static bool IsDBNull(object obj)
{
return Convert.IsDBNull(obj);
}
#region Conver To Methods
/// <summary>
/// 生成Guid
/// </summary>
/// <param name="obj">obj的ToString方法需要能够返回32位的数字字符串</param>
/// <returns>生成的System.Guid对象,传入的对象为空,则返回Guid.Empty</returns>
public static Guid ToGuid(object obj)
{
if (obj != null && obj != DBNull.Value)
{
try
{
return new Guid(obj.ToString());
}
catch
{
return Guid.Empty;
}
}
return Guid.Empty;
}
/// <summary>
/// 将一个对象转达换为一个TimeSpan对象
/// </summary>
/// <param name="obj">侍转换对象</param>
/// <returns>一个TimeSpan对象</returns>
public static TimeSpan ToTimeSpan(object obj)
{
return ToTimeSpan(obj, TimeSpan.Zero);
}
/// <summary>
/// 将一个对象转换成TimeSpan,当参数对象为空时,返回缺省值
/// </summary>
/// <param name="obj">侍转换的对象</param>
/// <param name="defaultValue">传入对象为空时,设置的缺省值</param>
/// <returns>返回一个TimeSpan对象</returns>
public static TimeSpan ToTimeSpan(object obj, TimeSpan defaultValue)
{
if (obj != null)
return ToTimeSpan(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将一个字符串转换成TimeSpan,当参数为空时,返回缺省值
/// </summary>
/// <param name="s">侍转换的字符串</param>
/// <param name="defaultValue">传入字符串为空时,设置的缺省值</param>
/// <returns>返回一个TimeSpan对象</returns>
public static TimeSpan ToTimeSpan(string s, TimeSpan defaultValue)
{
TimeSpan result;
bool success = TimeSpan.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将一个字符串转换成TimeSpan
/// </summary>
/// <param name="s">侍转换的字符串</param>
/// <returns>返回一个TimeSpan对象</returns>
public static TimeSpan ToTimeSpan(string s)
{
return ToTimeSpan(s, TimeSpan.Zero);
}
/// <summary>
/// 将一个对象转换为字符串
/// </summary>
/// <param name="obj">侍转换的对象</param>
/// <returns>返回一个字符串,当对象为空时,返回string.Empty</returns>
public static string ToString(object obj)
{
if (obj != null) return obj.ToString();
return string.Empty;
}
/// <summary>
/// 判断字符串对象是否为空,如果是空,则返回string.Empty;
/// </summary>
/// <param name="s">侍转换的字符串</param>
/// <returns>返回一个字符串</returns>
public static string ToString(string s)
{
return ToString(s, string.Empty);
}
/// <summary>
/// 判断字符串对象是否为空,如果是空,则返回一个缺省值
/// </summary>
/// <param name="s">侍转换字符串</param>
/// <param name="defaultString">字符串缺省值</param>
/// <returns>返回一个字符串,当对象为空时,返回缺省值</returns>
public static string ToString(string s, string defaultString)
{
if (s == null) return defaultString;
return s.ToString();
}
/// <summary>
/// 判断对象是否为空,如果是空,则返回一个缺省值
/// </summary>
/// <param name="s">侍转换对象</param>
/// <param name="defaultString">字符串缺省值</param>
/// <returns>返回一个字符串,当对象为空时,返回缺省值</returns>
public static string ToString(object s, string defaultString)
{
if (s == null) return defaultString; return s.ToString();
}
/// <summary>
/// 将字符串转换为double类型,如果传入的字符串不能转换为double类型,返回一个缺省值
/// </summary>
/// <param name="s">待转换字符串</param>
/// <param name="defaultValue">double缺省值</param>
/// <returns>返回double类型值,如果传入的字符串不能转换为double类型,返回一个缺省值</returns>
public static double ToDouble(string s, double defaultValue)
{
double result;
bool success = double.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将字符串转换为double类型,如果传入的字符串不能转换为double类型,返回0
/// </summary>
/// <param name="s">待转换字符串</param>
/// <returns>返回double类型值,如果传入的字符串不能转换为double类型,返回0</returns>
public static double ToDouble(string s)
{
return ToDouble(s, 0);
}
/// <summary>
/// 将对象转换为double类型,如果传入的对象不能转换为double类型,返回0
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回double类型值,如果传入的对象不能转换为double类型,返回0</returns>
public static double ToDouble(object obj)
{
return ToDouble(obj, 0);
}
/// <summary>
/// 将对象转换为double类型,如果传入的对象不能转换为double类型,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">缺省的double值</param>
/// <returns>返回double类型值,如果传入的对象不能转换为double类型,返回缺省值</returns>
public static double ToDouble(object obj, double defaultValue)
{
if (obj != null)
return ToDouble(obj.ToString(), defaultValue);
return defaultValue;
}
/// <summary>
/// 将对象转换为float类型,如果传入的对象不能转换为float类型,返回缺省值
/// </summary>
/// <param name="s">待转换字符串对象</param>
/// <param name="defaultValue">缺省的float值</param>
/// <returns>返回float类型值,如果传入的对象不能转换为float类型,返回缺省值</returns>
public static float ToSingle(string s, float defaultValue)
{
float result;
bool success = float.TryParse(s, out result);
return success ? result : defaultValue;
}
/// <summary>
/// 将对象转换为float类型,如果传入的对象不能转换为float类型,返回0
/// </summary>
/// <param name="s">待转换对象</param>
/// <returns>返回float类型值,如果传入的对象不能转换为float类型,返回0</returns>
public static float ToSingle(string s)
{
return ToSingle(s, 0);
}
/// <summary>
/// 将对象转换为float类型,如果传入的对象不能转换为float类型,返回0
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回float类型值,如果传入的对象不能转换为float类型,返回0</returns>
public static float ToSingle(object obj)
{
return ToSingle(obj, 0);
}
/// <summary>
/// 将对象转换为float类型,如果传入的对象不能转换为float类型,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">float缺省值</param>
/// <returns>返回float类型值,如果传入的对象不能转换为float类型,返回缺省值</returns>
public static float ToSingle(object obj, float defaultValue)
{
if (obj != null)
return ToSingle(obj.ToString(), defaultValue);
return defaultValue;
}
/// <summary>
/// 将对象转换为decimal类型,如果传入的对象不能转换为decimal类型,返回缺省值
/// </summary>
/// <param name="s">待转换对象</param>
/// <param name="defaultValue">decimal缺省值</param>
/// <returns>返回decimal类型值,如果传入的对象不能转换为decimal类型,返回缺省值</returns>
public static decimal ToDecimal(string s, decimal defaultValue)
{
decimal result;
bool success = decimal.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将对象转换为decimal类型,如果传入的对象不能转换为decimal类型,返回0
/// </summary>
/// <param name="s">待转换字符串</param>
/// <returns>返回decimal类型值,如果传入的对象不能转换为decimal类型,返回0</returns>
public static decimal ToDecimal(string s)
{
return ToDecimal(s, 0);
}
/// <summary>
/// 将对象转换为decimal类型,如果传入的对象不能转换为decimal类型,返回0
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回decimal类型值,如果传入的对象不能转换为decimal类型,返回0</returns>
public static decimal ToDecimal(object obj)
{
return ToDecimal(obj, 0);
}
/// <summary>
/// 将对象转换为decimal类型,如果传入的对象不能转换为decimal类型,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">decimal缺省值</param>
/// <returns>返回decimal类型值,如果传入的对象不能转换为decimal类型,返回缺省值</returns>
public static decimal ToDecimal(object obj, decimal defaultValue)
{
if (obj != null)
return ToDecimal(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将对象转换为float类型,如果传入的对象不能转换为float类型,返回缺省值
/// </summary>
/// <param name="s">待转换对象</param>
/// <param name="defaultValue">float缺省值</param>
/// <returns>返回float类型值,如果传入的对象不能转换为float类型,返回缺省值</returns>
public static float ToFloat(string s, float defaultValue)
{
float result;
bool success = float.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将对象转换为float类型,如果传入的对象不能转换为float类型,返回0
/// </summary>
/// <param name="s">待转换字符串对象</param>
/// <returns>返回float类型值,如果传入的对象不能转换为float类型,返回0</returns>
public static float ToFloat(string s)
{
return ToFloat(s, 0);
}
/// <summary>
/// 将对象转换为float类型,如果传入的对象不能转换为float类型,返回0
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回float类型值,如果传入的对象不能转换为float类型,返回0</returns>
public static float ToFloat(object obj)
{
return ToFloat(obj, 0);
}
/// <summary>
/// 将对象转换为float类型,如果传入的对象不能转换为float类型,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">float缺省值</param>
/// <returns>返回float类型值,如果传入的对象不能转换为float类型,返回缺省值</returns>
public static float ToFloat(object obj, float defaultValue)
{
if (obj != null)
return ToFloat(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将对象转换为bool类型,如果传入的对象不能转换为bool类型,返回缺省值
/// </summary>
/// <param name="s">待转换对象</param>
/// <param name="defaultValue">bool缺省值</param>
/// <returns>返回float类型值,如果传入的对象不能转换为bool类型,返回缺省值</returns>
public static bool ToBoolean(string s, bool defaultValue)
{
//修复1被转换为false的BUG
if (s == "1")
return true;
bool result;
bool success = bool.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将对象转换为bool类型,如果传入的对象不能转换为bool类型,返回false
/// </summary>
/// <param name="s">待转换字符串对象</param>
/// <returns>返回bool类型值,如果传入的对象不能转换为bool类型,返回false</returns>
public static bool ToBoolean(string s)
{
return ToBoolean(s, false);
}
/// <summary>
/// 将对象转换为bool类型,如果传入的对象不能转换为bool类型,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回float类型值,如果传入的对象不能转换为bool类型,返回缺省值</returns>
public static bool ToBoolean(object obj)
{
return ToBoolean(obj, false);
} /// <summary>
/// 将对象转换为bool类型,如果传入的对象不能转换为bool类型,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">bool缺省值</param>
/// <returns>返回float类型值,如果传入的对象不能转换为bool类型,返回缺省值</returns>
public static bool ToBoolean(object obj, bool defaultValue)
{
if (obj != null)
return ToBoolean(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将对象转换为char类型,如果传入的对象不能转换为char类型,返回缺省值
/// </summary>
/// <param name="s">待转换字符串</param>
/// <param name="defaultValue">char缺省值</param>
/// <returns>返回char类型值,如果传入的对象不能转换为char类型,返回缺省值</returns>
public static char ToChar(string s, char defaultValue)
{
char result;
bool success = char.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将字符串转换为char类型,如果传入的对象不能转换为char类型,返回'\0'
/// </summary>
/// <param name="s">待转换字符串</param>
/// <returns>返回char类型值,如果传入的对象不能转换为char类型,返回'\0'</returns>
public static char ToChar(string s)
{
return ToChar(s, '\0');
}
/// <summary>
/// 将对象转换为char类型,如果传入的对象不能转换为char类型,返回'\0'
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回char类型值,如果传入的对象不能转换为char类型,返回'\0'</returns>
public static char ToChar(object obj)
{
return ToChar(obj, '\0');
}
/// <summary>
/// 将对象转换为char类型,如果传入的对象为空,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">char缺省值</param>
/// <returns>返回char类型值,如果传入的对象为空,返回缺省值</returns>
public static char ToChar(object obj, char defaultValue)
{
if (obj != null)
return ToChar(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将字符串转换为byte类型,如果传入的对象不能转换为byte类型,返回缺省值
/// </summary>
/// <param name="s">待转换字符串</param>
/// <param name="defaultValue">byte缺省值</param>
/// <returns>返回byte类型值,如果传入的对象不能转换为byte类型,返回缺省值</returns>
public static byte ToByte(string s, byte defaultValue)
{
byte result;
bool success = byte.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将对象转换为byte类型,如果传入的对象不能转换为byte类型,返回0
/// </summary>
/// <param name="s">待转换字符串</param>
/// <param name="defaultValue">char缺省值</param>
/// <returns>返回byte类型值,如果传入的对象不能转换为byte类型,返回0</returns>
public static byte ToByte(string s)
{
return ToByte(s, 0);
}
/// <summary>
/// 将对象转换为byte类型,如果传入的对象不能转换为byte类型,返回0
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">char缺省值</param>
/// <returns>返回byte类型值,如果传入的对象不能转换为byte类型,返回0</returns>
public static byte ToByte(object obj)
{
return ToByte(obj, 0);
}
/// <summary>
/// 将对象转换为byte类型,如果传入的对象不能转换为byte类型,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">byte缺省值</param>
/// <returns>返回byte类型值,如果传入的对象不能转换为byte类型,返回缺省值</returns>
public static byte ToByte(object obj, byte defaultValue)
{
if (obj != null)
return ToByte(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将字符串对象转换为sbyte类型,如果传入字符串的对象不能转换为sbyte类型,返回缺省值
/// </summary>
/// <param name="s">待转换对象</param>
/// <param name="defaultValue">sbyte缺省值</param>
/// <returns>返回sbyte类型值,如果传入的对象不能转换为sbyte类型,返回缺省值</returns>
public static sbyte ToSByte(string s, sbyte defaultValue)
{
sbyte result;
bool success = sbyte.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将对象转换为sbyte类型,如果传入的对象不能转换为sbyte类型,返回0
/// </summary>
/// <param name="s">待转换对象</param>
/// <returns>返回sbyte类型值,如果传入的对象不能转换为sbyte类型,返回0</returns>
public static sbyte ToSByte(string s)
{
return ToSByte(s, 0);
}
/// <summary>
/// 将对象转换为sbyte类型,如果传入的对象不能转换为sbyte类型,返回0
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回sbyte类型值,如果传入的对象不能转换为sbyte类型,返回0</returns>
public static sbyte ToSByte(object obj)
{
return ToSByte(obj, 0);
}
/// <summary>
/// 将对象转换为sbyte类型,如果传入的对象为空,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">sbyte缺省值</param>
/// <returns>返回sbyte类型值,如果传入的对象为空,返回缺省值</returns>
public static sbyte ToSByte(object obj, sbyte defaultValue)
{
if (obj != null)
return ToSByte(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将对象转换为short类型,如果传入的对象不能转换为short类型,返回缺省值
/// </summary>
/// <param name="s">待转换字符串</param>
/// <param name="defaultValue">short缺省值</param>
/// <returns>返回short类型值,如果传入的对象不能转换为short类型,返回缺省值</returns>
public static short ToInt16(string s, short defaultValue)
{
short result;
bool success = short.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将字符串转换为short类型,如果传入的字符串不能转换为short类型,返回0
/// </summary>
/// <param name="s">待转换字符串</param>
/// <returns>返回short类型值,如果传入的字符串不能转换为short类型,返回0</returns>
public static short ToInt16(string s)
{
return ToInt16(s, 0);
}
/// <summary>
/// 将对象转换为short类型,如果传入的对象不能转换为short类型,返回0
/// </summary>
/// <param name="obj">待转换字符串</param>
/// <returns>返回short类型值,如果传入的对象不能转换为short类型,返回0</returns>
public static short ToInt16(object obj)
{
return ToInt16(obj, 0);
}
/// <summary>
/// 将字符串转换为short类型,如果传入的字符串为空,返回缺省值
/// </summary>
/// <param name="obj">待转换字符串</param>
/// <param name="defaultValue">short缺省值</param>
/// <returns>返回short类型值,如果传入的字符串为空,返回缺省值</returns>
public static short ToInt16(object obj, short defaultValue)
{
if (obj != null)
return ToInt16(obj.ToString(), defaultValue); return defaultValue;
} /// <summary>
/// 将字符串转换为ushort类型,如果传入的字符串不能转换为ushort,返回缺省值
/// </summary>
/// <param name="s">待转换字符串</param>
/// <param name="defaultValue">ushort缺省值</param>
/// <returns>返回ushort类型值,如果传入的字符串不能转换为ushort,返回缺省值</returns>
public static ushort ToUInt16(string s, ushort defaultValue)
{
ushort result;
bool success = ushort.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将字符串转换为ushort类型,如果传入的字符串不能转换为ushort,返回0
/// </summary>
/// <param name="s">待转换字符串</param>
/// <returns>返回ushort类型值,如果传入的字符串不能转换为ushort,返回0</returns>
public static ushort ToUInt16(string s)
{
return ToUInt16(s, 0);
}
/// <summary>
/// 将对象转换为ushort类型,如果传入的对象不能转换为ushort,返回0
/// </summary>
/// <param name="obj">待转换字符串</param>
/// <returns>返回ushort类型值,如果传入的对象不能转换为ushort,返回0</returns>
public static ushort ToUInt16(object obj)
{
return ToUInt16(obj, 0);
} /// <summary>
/// 将字符串转换为ushort类型,如果传入的字符串不能转换为ushort,返回0
/// </summary>
/// <param name="obj">待转换字符串</param>
/// <param name="defaultValue">ushort缺省值</param>
/// <returns>返回ushort类型值,如果传入的字符串不能转换为ushort,返回0</returns>
public static ushort ToUInt16(object obj, ushort defaultValue)
{
if (obj != null)
return ToUInt16(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将字符串转换为int类型,如果传入的字符串不能转换为int,返回缺省值
/// </summary>
/// <param name="s">待转换字符串</param>
/// <param name="defaultValue">int缺省值</param>
/// <returns>返回int类型值,如果传入的字符串不能转换为int,返回缺省值</returns>
public static int ToInt32(string s, int defaultValue)
{
int result;
bool success = int.TryParse(s, out result); return success ? result : defaultValue;
} /// <summary>
/// 将字符串转换为int类型,如果传入的字符串不能转换为int,返回0
/// </summary>
/// <param name="s">待转换字符串</param>
/// <returns>返回int类型值,如果传入的字符串不能转换为int,返回0</returns>
public static int ToInt32(string s)
{
return ToInt32(s, 0);
}
/// <summary>
/// 将对象转换为int类型,如果传入的字符串不能转换为int,返回0
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回int类型值,如果传入的对象不能转换为int,返回0</returns>
public static int ToInt32(object obj)
{
return ToInt32(obj, 0);
}
/// <summary>
/// 将对象转换为int类型,如果传入的字符串不能转换为int,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">int缺省值</param>
/// <returns>返回int类型值,如果传入的字符串不能转换为int,返回缺省值</returns>
public static int ToInt32(object obj, int defaultValue)
{
if (obj != null)
return ToInt32(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将字符串对象转换为uint类型,如果传入的字符串不能转换为uint,返回缺省值
/// </summary>
/// <param name="s">待转换字符串对象</param>
/// <param name="defaultValue">uint缺省值</param>
/// <returns>返回uint类型值,如果传入的字符串不能转换为uint,返回缺省值</returns>
public static uint ToUInt32(string s, uint defaultValue)
{
uint result;
bool success = uint.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将字符串对象转换为uint类型,如果传入的字符串不能转换为uint,返回0
/// </summary>
/// <param name="s">待转换字符串对象</param>
/// <returns>返回uint类型值,如果传入的字符串不能转换为uint,返回0</returns>
public static uint ToUInt32(string s)
{
return ToUInt32(s, 0);
} /// <summary>
/// 将对象转换为uint类型,如果传入的对象不能转换为uint,返回0
/// </summary>
/// <param name="obj">待转换</param>
/// <returns>返回uint类型值,如果传入的对象不能转换为uint,返回0</returns>
public static uint ToUInt32(object obj)
{
return ToUInt32(obj, 0);
}
/// <summary>
/// 将对象转换为uint类型,如果传入的对象不能转换为uint,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">uint缺省值</param>
/// <returns>返回uint类型值,如果传入的对象不能转换为uint,返回缺省值</returns>
public static uint ToUInt32(object obj, uint defaultValue)
{
if (obj != null)
return ToUInt32(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将字符串转换为long类型,如果传入的字符串不能转换为long,返回缺省值
/// </summary>
/// <param name="s">待转换字符串</param>
/// <param name="defaultValue">long缺省值</param>
/// <returns>返回long类型值,如果传入的字符串不能转换为long,返回缺省值</returns>
public static long ToInt64(string s, long defaultValue)
{
long result;
bool success = long.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将字符串转换为long类型,如果传入的字符串不能转换为long,返回0
/// </summary>
/// <param name="s">待转换字符串</param>
/// <returns>返回long类型值,如果传入的字符串不能转换为long,返回0</returns>
public static long ToInt64(string s)
{
return ToInt64(s, 0);
}
/// <summary>
/// 将对象转换为long类型,如果传入的对象不能转换为long,返回0
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回long类型值,如果传入的对象不能转换为long,返回0</returns>
public static long ToInt64(object obj)
{
return ToInt64(obj, 0);
} /// <summary>
/// 将对象转换为long类型,如果传入的对象不能转换为long,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">long缺省值</param>
/// <returns>返回long类型值,如果传入的对象不能转换为long,返回缺省值</returns>
public static long ToInt64(object obj, long defaultValue)
{
if (obj != null)
return ToInt64(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将字符串转换为ulong类型,如果传入的字符串不能转换为ulong,返回缺省值
/// </summary>
/// <param name="s">待转换字符串</param>
/// <param name="defaultValue">ulong缺省值</param>
/// <returns>返回ulong类型值,如果传入的字符串不能转换为ulong,返回缺省值</returns>
public static ulong ToUInt64(string s, ulong defaultValue)
{
ulong result;
bool success = ulong.TryParse(s, out result); return success ? result : defaultValue;
}
/// <summary>
/// 将字符串转换为ulong类型,如果传入的字符串不能转换为ulong,返回0
/// </summary>
/// <param name="s">待转换字符串</param>
/// <returns>返回ulong类型值,如果传入的字符串不能转换为ulong,返回0</returns>
public static ulong ToUInt64(string s)
{
return ToUInt64(s, 0);
}
/// <summary>
/// 将对象转换为ulong类型,如果传入的对象不能转换为ulong,返回0
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回ulong类型值,如果传入的对象不能转换为ulong,返回0</returns>
public static ulong ToUInt64(object obj)
{
return ToUInt64(obj, 0);
}
/// <summary>
/// 将对象转换为ulong类型,如果传入的对象不能转换为ulong,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">ulong缺省值</param>
/// <returns>返回ulong类型值,如果传入的对象不能转换为ulong,返回缺省值</returns>
public static ulong ToUInt64(object obj, ulong defaultValue)
{
if (obj != null)
return ToUInt64(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将字符串转换为DateTime类型,如果传入的字符串不能转换为DateTime,返回缺省值
/// </summary>
/// <param name="s">待转换字符串</param>
/// <param name="defaultValue">DateTime缺省值</param>
/// <returns>返回DateTime类型值,如果传入的字符串不能转换为DateTime,返回缺省值</returns>
public static DateTime ToDateTime(string s, DateTime defaultValue)
{
DateTime result;
bool success = DateTime.TryParse(s, out result); return success ? result : defaultValue;
} /// <summary>
/// 将字符串转换为DateTime类型,如果传入的字符串不能转换为DateTime,返回DateTime.MinValue
/// </summary>
/// <param name="s">待转换字符串</param>
/// <returns>返回DateTime类型值,如果传入的字符串不能转换为DateTime,返回DateTime.MinValue</returns>
public static DateTime ToDateTime(string s)
{
return ToDateTime(s, DateTime.MinValue);
}
/// <summary>
/// 将对象转换为DateTime类型,如果传入的对象不能转换为DateTime,返回DateTime.MinValue
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回DateTime类型值,如果传入的对象不能转换为DateTime,返回DateTime.MinValue</returns>
public static DateTime ToDateTime(object obj)
{
return ToDateTime(obj, DateTime.MinValue);
}
/// <summary>
/// 将对象转换为DateTime类型,如果传入的对象不能转换为DateTime,返回DateTime.MinValue
/// </summary>
/// <param name="obj">待转换对象</param>
/// <returns>返回DateTime类型值,如果传入的对象不能转换为DateTime,返回DateTime.MinValue</returns>
public static DateTime ToDateTime2(DateTime obj, string format)
{
DateTimeFormatInfo dtFormat = new DateTimeFormatInfo();
dtFormat.ShortDatePattern = format;
return Convert.ToDateTime(obj, dtFormat);
}
/// <summary>
/// 将对象转换为DateTime类型,如果传入的对象不能转换为DateTime,返回缺省值
/// </summary>
/// <param name="obj">待转换对象</param>
/// <param name="defaultValue">DateTime缺省值</param>
/// <returns>返回DateTime类型值,如果传入的对象不能转换为DateTime,返回缺省值</returns>
public static DateTime ToDateTime(object obj, DateTime defaultValue)
{
if (obj != null)
return ToDateTime(obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 将字符串类型转换成枚举类型,不忽略大小写
/// </summary>
/// <param name="enumType">型别</param>
/// <param name="text">枚举值</param>
/// <param name="defaultValue">缺省枚举值</param>
/// <returns>返回一个enumType的对象,其值是text,如果转换失败,返回缺省值</returns>
public static object ToEnum(Type enumType, string text, object defaultValue)
{
if (Enum.IsDefined(enumType, text))
{
return Enum.Parse(enumType, text, false);
} return defaultValue;
}
/// <summary>
/// 将对象转换成枚举类型,不忽略大小写
/// </summary>
/// <param name="enumType">型别</param>
/// <param name="obj">枚举值</param>
/// <param name="defaultValue">缺省枚举值</param>
/// <returns>返回一个enumType的对象,其值是text,如果转换失败,返回缺省值</returns>
public static object ToEnum(Type enumType, object obj, object defaultValue)
{
if (obj != null)
return ToEnum(enumType, obj.ToString(), defaultValue); return defaultValue;
}
/// <summary>
/// 创建一个枚举,其值为index
/// </summary>
/// <param name="enumType">型别</param>
/// <param name="index">枚举值</param>
/// <returns>返回一个enumType的枚举,值为index</returns>
public static object ToEnum(Type enumType, int index)
{
return Enum.ToObject(enumType, index);
} /// <summary>
/// Json字符串转为List对象
/// </summary>
/// <typeparam name="T">对象</typeparam>
/// <param name="json">Json字符串</param>
/// <returns></returns>
public static List<T> JsonStringToList<T>(string json, out string msg)
{
msg = string.Empty;
try
{
return JsonConvert.DeserializeObject<List<T>>(json);
}
catch (Exception ex)
{
msg = ex.Message;
return null;
}
}
#endregion
}
}

  

C#安全类型转换基于convert的更多相关文章

  1. 第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数

    第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all;  ...

  2. mysql类型转换函数convert与cast的用法

    原文地址:https://blog.csdn.net/kouwoo/article/details/45535733 简单介绍下mysql数据库中用于类型转换的二个函数,convert与cast函数, ...

  3. mysql类型转换函数convert与cast的用法,及SQL server的区别

    首先,convert函数 字符集转换 :   CONVERT(xxx  USING   gb2312) 类型转换和SQL Server一样,不过类型参数上有不同: CAST(xxx  AS   类型) ...

  4. 报错:对象必须实现 IConvertible;以分隔符进行分割链接concat_ws的使用方法;mysql数据类型转换cast,convert

    错误故障,mysql  服务器上用 concat_ws 函数,连接了一串数字,最后 服务器返回的字段就变成了一个 byte ,而我们想要的类型是  string 类型,那么转换的时候,就报错了. 正确 ...

  5. sql注入记录------类型转换错误---convert()函数,一句话图片马制作

    sql注入在联合查询是出现一下错误查不到数据 Illegal mix of collations for operation 'UNION' 用convert() 转换编码为utf8 或者big5 就 ...

  6. Util应用程序框架公共操作类(二):数据类型转换公共操作类(源码篇)

    上一篇介绍了数据类型转换的一些情况,可以看出,如果不进行封装,有可能导致比较混乱的代码.本文通过TDD方式把数据类型转换公共操作类开发出来,并提供源码下载. 我们在 应用程序框架实战十一:创建VS解决 ...

  7. Qt——信号槽连接:基于字符串与基于函数的连接之间的不同

    从Qt5.0开始,Qt提供了两种不同的方式进行信号槽的连接:基于 字符串 的连接语法.基于 函数 的连接语法.这两种语法各有利弊,下面对它们的不同点进行总结. 以下几部分详细解释了它们之间的不同,并说 ...

  8. 基于SpringBoot的Environment源码理解实现分散配置

    前提 org.springframework.core.env.Environment是当前应用运行环境的公开接口,主要包括应用程序运行环境的两个关键方面:配置文件(profiles)和属性.Envi ...

  9. 从零学习基于Python的RobotFramework自动化

    从零学习基于Python的RobotFramework自动化 一.        Python基础 1)      版本差异 版本 编码 语法 其他 2.X ASCII try: raise Type ...

随机推荐

  1. Windows出现“引用账户被锁定,且暂时无法登录”解决方法

    1. 问题描述如下: i. 远程桌面登录时,出现提示必须修改密码才能登录,是因为密码过期所导致的,如下图: ii. 当我们登录Windows控制台(基于OpenStack平台的虚拟机)进行修改密码时, ...

  2. [Tutorial]综述阅读笔记 <Visual Odometry PartII_Introduce about BA>

    目录 Visual Odometry: Part II - Matching, Robustness, and Applications ---- paper notes 特征点的选择与匹配 特征点匹 ...

  3. mysql udf提权实战测试

    根据前天对大牛们的资料学习,进行一次mysql udf提权测试. 测试环境: 受害者系统:centos 7.7 ,docker部署mysql5.6.46, IP:192.168.226.128 攻击者 ...

  4. 201871010133-赵永军《面向对象程序设计(java)》第十一周学习总结

    201871010133-赵永军<面向对象程序设计(java)>第十一周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  5. pikachu 文件包含,上传,下载

    一.文件包含 1.File Inclusion(local) 我们先测试一下,选择kobe然后提交 发现url出现变化 可以猜测此功能为文件包含,包含的文件为 file1.php,所以我在此盘符的根目 ...

  6. win10系统易升更新不成功c盘也满了,解决方法

    删除临时更新文件: 1)同时按下Windows键和R键,打开运行,输入services.msc 2)找到WindowsUpdate服务项,右键选择禁用. 3)打开c:\windows\Software ...

  7. Netty粘包问题(六)

    netty使用tcp/ip协议传输数据,而tcp/ip协议是类似水流一样的数据传输方法.多次访问的时候可能出现粘包的问题,解决这种问题的方式有如下几种. 一.定长数据流 二.特殊结束符 三.

  8. koa中的路由

    原生路由 网站一般都有多个页面.通过ctx.request.path可以获取用户请求的路径,由此实现简单的路由. const main = ctx => { if (ctx.request.pa ...

  9. Manthan Codefest 19 题解

    这套题还是有点质量的吧 -- 题目链接 A. XORinacci 傻叉签到题,因为异或的性质所以这个序列的循环节长度只有 \(3\) -- 查看代码 B. Uniqueness 因为序列长度乃至数的种 ...

  10. AtCoder Grand Contest 036题解

    传送门 爆炸的比较厉害--果然还是菜啊-- \(A\) 我们强制一个点为\((0,0)\),那么设剩下两个点分别为\((a,b),(c,d)\),根据叉积可以计算出面积为\(ad-bc=S\),那么令 ...