Integer.TryParse - 更好的方法吗?
我发现自己经常需要使用 Integer.TryParse 来测试某个值是否是整数。 然而,当你使用 TryParse 时,你必须向函数传递一个引用变量,所以我发现自己总是需要创建一个空白整数来传入。通常它看起来像这样
Dim tempInt as Integer
If Integer.TryParse(myInt, tempInt) Then
:想要是一个简单的“真/假”响应。 有更好的方法来解决这个问题吗? 为什么没有一个重载函数,我可以只传递我想要测试的值并获得真/假响应?
I find myself often needing to use Integer.TryParse to test if a value is an integer. However, when you use TryParse, you have to pass a reference variable to the function, so I find myself always needing to create a blank integer to pass in. Usually it looks something like:
Dim tempInt as Integer
If Integer.TryParse(myInt, tempInt) Then
I find this to be quite cumbersome considering that all I want is a simple True / False response. Is there a better way to approach this? Why isn't there an overloaded function where I can just pass the value I want to test and get a true / false response?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
无需声明整数。
或者
如果您有 .Net 3.5 能力,您可以为字符串创建扩展方法。
然后这样调用:
抱歉,我知道我有点得意忘形,但您也可以将其添加到 .Net 3.5 中上面的 MyExtensions 类中,除非您需要验证,否则不用担心。
然后只需使用
This will return 0 if it isn't a valid Integer.
No need to declare the integer.
or
If you have .Net 3.5 ability you can create an extension method for strings.
And then call like:
Sorry, getting carried away I know, but also you can add this to the MyExtensions class above in .Net 3.5 and not worry unless you need validations.
Then simply use
This will return 0 if it isn't a valid Integer.
由于您使用的是 VB.net,因此您可以使用 IsNumeric 函数
Since you are using VB.net you can use the IsNumeric Function
试试这个代码。
好的部分是,由于它被声明为模块级函数,因此可以在没有限定符的情况下使用。 用法示例
Try this code.
The nice part is that since it's declared as a Module level function it can be used without a qualifier. Example Usage
为什么不编写一个扩展方法来清理你的代码呢? 我已经有一段时间没有编写 VB.Net 了,但这里有一个 C# 示例:
Why not write an extension method to clean up your code? I haven't written VB.Net for a while, but here is an example in c#:
J Ambrose Little 表演2003 年 IsNumeric 检查的时序测试。 您可能希望使用 CLR v2 重试上述测试。
J Ambrose Little performed timing tests for IsNumeric checks back in 2003. You may wish to retry the mentioned tests with v2 of the CLR.
一种变化是:
A variation would be: