1

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

1)

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

2)

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

谢谢!!!

4

5 回答 5

7

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

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

于 2013-06-17T22:23:16.407 回答
1

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

  • 如果strFlag是有效的byte,将其解码并设置flag为它。返回true
  • 否则设置flag0并返回false

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

如果您想flag使用2默认情况,则需要使用后面的语法。

于 2013-06-17T22:26:35.057 回答
1

显然它是方法#2。

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

于 2013-06-17T22:24:20.243 回答
0

第二。

一旦将out参数传递给方法,该方法就可以对其执行任何操作。

于 2013-06-17T22:23:41.690 回答
0

2个不同的东西

在后者中,您有一个区域:“如果失败我该怎么办”

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

于 2013-06-17T22:23:41.903 回答