我想创建一个函数,它将检查参数的值,如果它为 null,则应根据参数的类型设置值,否则应按原样返回值。
这是我尝试过的。
public static T ConvertNull<T>(T obj)
{
if (String.IsNullOrEmpty(obj.ToString()))
{
HttpContext.Current.Response.Write("COMING IN");
if (typeof(T) == typeof(Int32))
{
return (T)Convert.ChangeType(0, typeof(T));
}
else if (typeof(T) == typeof(DateTime))
{
return (T)Convert.ChangeType(DateTime.Now, typeof(T));
}
else
{
return (T)Convert.ChangeType(String.Empty, typeof(T));
}
}
else
{
HttpContext.Current.Response.Write("ELSE");
return obj;
}
}
但问题是它总是进入 ELSE 部分并返回垃圾值。
谁能告诉我上述功能有什么问题。