回到 VB6,我编写了一些函数,让我在编码时无需关心字符串的 null 和 ''、数字的 null 和 0 等之间的区别。编码时,没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码; 9999/10000 如果我使用的数字为空,那么我实际上将其视为 0。
我现在使用 C#,VB6 和 C# 2005 之间的差异相当广泛......所以我真的不知道从哪里开始编写我的新辅助函数集,或者我是否需要这样做。
因此,我需要编写一个函数来接受字符串、数据库字段、请求表单/查询字段,???,然后尽其所能将其转换为 Double,并将其返回给调用过程。
我还需要对 Shorts、int16、int32、long 以及我可能关心的所有其他内容执行此操作。
然后我会对字符串执行此操作。和日期。
这是值得的追求吗?我可以使用框架或 C# 中的某些内容吗?我真的希望有一些东西可以让我在调用其他函数时使用内联数据,而不必创建临时变量等。
内置了大量转换函数。但是...我不确定他们中的任何一个是否完全按照您的意愿行事。通常,.NET 方法在传递无效输入时会过于谨慎,并引发异常。
幸运的是,您可以轻松编写一个实用程序方法来将数值的字符串表示形式、空字符串或空字符串转换为任何输出类型:
public static T SafeConvert<T>(string s, T defaultValue)
{
if ( string.IsNullOrEmpty(s) )
return defaultValue;
return (T)Convert.ChangeType(s, typeof(T));
}
Use:
SafeConvert(null, 0.0) == 0.0;
SafeConvert("", 0.0) == 0.0;
SafeConvert("0", 0.0) == 0.0;
此泛型方法从第二个参数的类型获取其返回类型,当传递的字符串为 null 或空时,该参数用作默认值。经过0
你会得到一个In32
后退。经过0L
, Int64
。等等...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)