当前位置:  开发笔记 > 编程语言 > 正文

Parse v.TrreadParse

如何解决《Parsev.TrreadParse》经验,为你挑选了2个好方法。

Parse()和TryParse()有什么区别?

int number = int.Parse(textBoxNumber.Text);

// The Try-Parse Method
int.TryParse(textBoxNumber.Text, out number);

是否有某种形式的错误检查,如Try-Catch Block?



1> Greg Beech..:

Parse如果它无法解析该值,则抛出异常,而TryParse返回bool指示是否成功的异常.

TryParse不只是try/ catch内部 - 它的全部意义在于它是在没有异常的情况下实现的,因此速度很快.实际上,它最有可能实现的方式是在内部Parse方法将调用TryParse,然后在返回时抛出异常false.

简而言之,Parse如果您确定该值有效,请使用; 否则使用TryParse.


虽然考虑到这一点,Parse抛出了许多不同的异常,所以如果它只是一个来自TryParse的bool那么它就不会知道扔哪一个.
"如果您确定该值有效,请使用Parse".我补充说,"但你承认你可能错了".如果您100%确定它可以解析,那么您可以正确使用TryParse,这可能更快.
@Joel - 我以为他们会移动实现,但我只是看看反射器,他们是单独的实现,*完全*相同的代码,而不是一个'throw ...'和一个'返回false'.我想知道为什么他们没有巩固?!
而对于"不同的例外",@ GregBeech意味着消息,而不是类.

2> M4N..:

如果字符串无法转换为整数,那么

int.Parse() 会抛出异常

int.TryParse() 将返回false(但不会抛出异常)

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有