越来越多的优化解析…在c#
本文关键字:优化 越来越多 | 更新日期: 2023-09-27 18:12:48
我有下面的c#代码解析…你认为这是最优化的还是我应该使用通用方法或优化这些函数本身?
public static bool GetDBBool(object value)
{
var result = false;
if (value != null && string.IsNullOrEmpty(value.ToString()) == false)
bool.TryParse(value.ToString(), out result);
return result;
}
public static int GetDBInt(object value)
{
var result = -999;
if (value != null && string.IsNullOrEmpty(value.ToString()) == false)
int.TryParse(value.ToString(), out result);
return result;
}
public static double GetDBDouble(object value)
{
var result = -999.00;
if (value != null && string.IsNullOrEmpty(value.ToString()) == false)
double.TryParse(value.ToString(), out result);
return result;
}
public static DateTime GetDBDate(object value)
{
var result = DateTime.Now;
if (value != null && string.IsNullOrEmpty(value.ToString()) == false)
DateTime.TryParse(value.ToString(), out result);
return result;
}
public static DateTime? GetDBNullableDate(object value)
{
DateTime date;
if (value != null && string.IsNullOrEmpty(value.ToString()) == false)
return DateTime.TryParse(value.ToString(), out date) ? date : (DateTime?)null;
else
return null;
}
没有什么可以优化的了。我怀疑THIS是程序中最慢的地方。
但是你的空值有点奇怪。-999的数字?DateTime.Now
为DateTime?您确定这不会在其他代码中造成问题吗?这些都是很正常的值这意味着其他代码将无法区分你是有一个空值,还是一个实际值。这个默认值对于其他代码可能是错误的。
如果是我,我会用0表示整数,用DateTime.MinValue
表示DateTime
。或者更好的做法是——一直使用可空元素
"== false"不是很好读。使用!相反。
如果"object value"已经是期望的类型(例如DateTime),将其转换为字符串然后再转换回来会更慢。
我会写
if (value is DateTime) return (DateTime)value;
我不会使用var result = -999;作为返回值。
如果转换失败,可以返回Int32。MinValue(优于-999)或者宁可为空。
也许你也想检查DBNull.Value?首先我会检查null和DBNull。值,然后" Value is DateTime"检查最后一件事是DateTime. tryparse