这种情况,你需要写一个公用的函数来转换值,public T GetValue<T>(object value, T defaultvalue = default(T))
{
if (value== null || value== DBNull.Value)
{
return defaultvalue;
}
return (T)result;
}你在调用的时候只要传入相应的你要转换的类型和Object值就行了
{
if (value== null || value== DBNull.Value)
{
return defaultvalue;
}
return (T)result;
}你在调用的时候只要传入相应的你要转换的类型和Object值就行了
bj_gzrz.zxsj = Convert.ToDateTime(this.dgv.CurrentRow.Cells["zxsj"].Value == null ? 当前日期 : this.dgv.CurrentRow.Cells["zxsj"].Value);
result需要定义?怎么调用
result需要定义?怎么调用
不要意思,修改为:public T GetValue<T>(object value, T defaultvalue = default(T))
{
if (value== null || value== DBNull.Value)
{
return defaultvalue;
}
return (T)value;
}调用bj_gzrz.zxsj =GetValue<DateTime>(this.dgv.CurrentRow.Cells["zxsj"].Value);
result需要定义?怎么调用
不要意思,修改为:public T GetValue<T>(object value, T defaultvalue = default(T))
{
if (value== null || value== DBNull.Value)
{
return defaultvalue;
}
return (T)value;
}调用bj_gzrz.zxsj =GetValue<DateTime>(this.dgv.CurrentRow.Cells["zxsj"].Value);
还是没达到效果
这种情况千万别去try,try了你的程序就别考虑性能了。
#6楼的方法好,但是返回(T)value真的没问题?不是Convert.ToDateTime(value)??
#6楼的方法也其实是封装了判断步骤。
result需要定义?怎么调用
不要意思,修改为:public T GetValue<T>(object value, T defaultvalue = default(T))
{
if (value== null || value== DBNull.Value)
{
return defaultvalue;
}
return (T)value;
}调用bj_gzrz.zxsj =GetValue<DateTime>(this.dgv.CurrentRow.Cells["zxsj"].Value);
还是没达到效果return (T)value; 改成 Convert.ToDateTime(value);
result需要定义?怎么调用
不要意思,修改为:public T GetValue<T>(object value, T defaultvalue = default(T))
{
if (value== null || value== DBNull.Value)
{
return defaultvalue;
}
return (T)value;
}调用bj_gzrz.zxsj =GetValue<DateTime>(this.dgv.CurrentRow.Cells["zxsj"].Value);
还是没达到效果return (T)value; 改成 Convert.ToDateTime(value);
并非所有的代码路径都返回值
{
if (value== null || value== DBNull.Value||string.IsNullOrEmpty(value.ToString()))
{
return defaultvalue;
}
return (T)value;
}
{
zxsj = DateTime.Now;
}
{
zxsj = DateTime.Now;
}
else
{
zxsj = DateTime.Now;
}
要这样才会正常
可是我本身这个就是没有值的所以也不希望在传值过去也不要有值有办法处理吗
只有两个办法,
1.接收参数的地方类型使用DateTime? 可空类型
2.判断如果没有值就不为这个属性赋值,最后判断是否等于DateTime.MinValue