微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 帮助函数用于从字符串安全转换

回到VB6,我写了几个函数,让我的代码,而不必关心null和“for”之间的区别,null和0的数字等等.没有什么比编码时更多地杀死我的生产力,而不是添加特殊情况处理可能导致一些无关错误的数据的代码; 9999/10000如果我使用的数字是null,那么我真的把它当作0.

我现在在C#中,VB6和C#2005之间的区别是相当广泛的…所以我真的不知道从哪里开始编写我的新的一组帮助函数,或者如果我甚至需要这样做.

所以,我需要编写一个函数来接受一个字符串,一个数据库字段,一个请求格式/查询字段,然后做任何它可以做的,把它转换成一个Double,并返回到调用过程.

我也需要做这个短裤,int16,int32,长,我可以关心的一切.

然后我会做这个字符串.和日期.

这是值得追求吗?在框架或C#中有什么可以用吗?我真的希望能够让我在调用其他函数时使用数据,而不必创建临时变量.

解决方法

内置了转换功能的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.等等…

原文地址:https://www.jb51.cc/csharp/97007.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐