回到VB6,我写了几个函数,让我的代码,而不必关心null和“for”之间的区别,null和0的数字等等.没有什么比编码时更多地杀死我的生产力,而不是添加特殊情况处理可能导致一些无关错误的数据的代码; 9999/10000如果我使用的数字是null,那么我真的把它当作0.
我现在在C#中,VB6和C#2005之间的区别是相当广泛的…所以我真的不知道从哪里开始编写我的新的一组帮助函数,或者如果我甚至需要这样做.
所以,我需要编写一个函数来接受一个字符串,一个数据库字段,一个请求格式/查询字段,然后做任何它可以做的,把它转换成一个Double,并返回到调用过程.
我也需要做这个短裤,int16,int32,长,我可以关心的一切.
然后我会做这个字符串.和日期.
解决方法
内置了转换功能的scad.但是…我不知道他们中的任何一个完全符合你想要的.一般来说,.NET方法在传递无效输入时会小心谨慎,并抛出异常.
幸运的是,您可以轻松地编写一个实用程序方法来将数值,空字符串空或空字符串的字符串表示形式转换为任何输出类型:
public static T SafeConvert<T>(string s,T defaultValue) { if ( string.IsNullOrEmpty(s) ) return defaultValue; return (T)Convert.ChangeType(s,typeof(T)); }
使用:
SafeConvert(null,0.0) == 0.0; SafeConvert("",0.0) == 0.0; SafeConvert("0",0.0) == 0.0;
该通用方法从第二个参数的类型获取其返回类型,当传递的字符串为空或为空时,该方法用作默认值.通过0,你会得到一个In32回来.通过0L,Int64.等等…