偷懒的类型转换
在业务层方法中经常会读取数据层方法获取一些值,并返回值给表现层。往往数据层->业务层返回的是一种类型,比如 object,业务层->表现层又要去返回另一种类型的值,比如 int、string,如何可以方便的处理类型的转换呢?
出于偷懒的想法,所以写了以下方法:
/// <summary>
/// 转化值为某类型
/// </summary>
/// <typeparam name="T">要转化的类型</typeparam>
/// <param name="val">要转化的值</param>
/// <param name="defaultVal">默认值</param>
/// <returns></returns>
protected T ParseValue<T>(object val, object defaultVal)
{
if (val == null || val == DBNull.Value)
{
return (T)Convert.ChangeType(defaultVal, typeof(T));
}
return (T)Convert.ChangeType(val, typeof(T));
}
运用实例:
业务层:
/// <summary>
/// 获取最大员工编号
/// </summary>
/// <returns></returns>
public int GetMaxEmployeeID()
{
object val = dtEmployee.GetMaxEmployeeID();
return ParseValue<int>(val, 0);
}
数据层:
/// <summary>
/// 获取最大员工编号
/// </summary>
public object GetMaxEmployeeID()
{
string sql = "select max(Employee_ID) from t_employee ";
return MySQLHelper.ExecuteScalar(sql);
}