gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 18:35:24 26 4
gpt4 key购买 nike

这可能更像是一个优雅的问题而不是功能。我正在寻找从字符串和对象中检查整数的绝对最安全的方法,

在 .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;
}

关于vb.net - 检查整数的最安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/580429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com