byte.TryParse()哪种方法更好

时间:2013-06-17 22:21:28

标签: c#

我只需要建议确保哪种方法更好

1)

byte flag = 2; 
byte.TryParse(strFlag, out flag);

2)

byte flag; 
if (!byte.TryParse(strFlag, out flag)) 
{ 
    flag = 2; 
}

感谢!!!

5 个答案:

答案 0 :(得分:7)

如果flag失败,我假设您要将TryParse设置为2。

第一种方法是错误的。如果失败,它将用0覆盖您的值(因为这是byte类型的默认值)。您应该使用第二种解决方案。

答案 1 :(得分:1)

显然这是方法#2。

原因是#1将使用类型的默认值覆盖变量的值(在本例中为0)

答案 2 :(得分:1)

TryParse将在您的示例中执行以下操作:

  • 如果strFlag是有效的byte,请对其进行解码并将flag设置为true。返回flag
  • 否则将0设置为false并返回flag

请注意,这意味着TryParse 始终flag设置为2

如果您希望{{1}}在默认情况下为{{1}},则需要使用后面的语法。

答案 3 :(得分:0)

第二个。

out参数传递给方法后,该方法可以执行任何想要的操作。

答案 4 :(得分:0)

2件不同的事情

在后者中你有一个区域:“如果失败将会怎样做”

在前者你没有它。 - 它将使用默认值覆盖该值。