加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – 检查整数的最安全的方法

发布时间:2020-12-17 07:12:06 所属栏目:百科 来源:网络整理
导读:这可能是一个优雅的问题,而不是功能.我正在寻找从字符串和对象检查整数的绝对最安全的方法, 在.net中使用大多数内置函数似乎会生成第一个机会异常,显示在立即窗口中,并且随着时间的推移它们只是构建起来.这些异常的含义是什么,因为它们似乎不会影响系统的运
这可能是一个优雅的问题,而不是功能.我正在寻找从字符串和对象检查整数的绝对最安全的方法,

在.net中使用大多数内置函数似乎会生成第一个机会异常,显示在立即窗口中,并且随着时间的推移它们只是构建起来.这些异常的含义是什么,因为它们似乎不会影响系统的运行.

这是我的两次尝试,都觉得笨重,我知道必须有一个比使用VB.IsDBNull和Integer.TryParse更好的方法…或者我只是肛门.

(从对象的整数)

Dim nInteger As Integer = 0
    If oData Is Nothing OrElse VB.IsDBNull(oData) Then
    Else
        If bThrowErrorIfInvalid Then
        Else
            On Error Resume Next
        End If
        nInteger = CType(oData,Integer)
    End If
    Return nInteger

(从字符串整数)

Dim nInteger As Integer = 0
    If sText Is Nothing Then
    Else
        If bThrowErrorIfInvalid Then
        Else
            On Error Resume Next
        End If
        Integer.TryParse(sText,nInteger) 
    End If
    Return nInteger

解决方法

使用Integer.TryParse有什么问题?多数民众赞成在… …

int i = 0;
string toTest = "not number";
if(int.TryParse(toTest,out i))
{
   // it worked

}

那笨重怎么样? (C#不是VB我知道,但相同的差异)

编辑:添加,如果你想从一个对象检查(因为TryParse依赖于一个字符串),我不太确定你如何实际计划使用它.这是否可以解决您的问题,因为这种方法会检查您的两种情况?

static bool TryParseInt(object o,out int i)
    {
        i = 0;

        if (o.GetType() == typeof(int))
        {
            i = (int)o;
            return true;
        }
        else if (o.GetType() == typeof(string))
        {
            return int.TryParse(o as string,out i);
        }

        return false;
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读